aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/QueryKit
diff options
context:
space:
mode:
authorrowanbeentje <rowan@beent.je>2012-03-05 21:52:01 +0000
committerrowanbeentje <rowan@beent.je>2012-03-05 21:52:01 +0000
commitd5e20720cf7f991a691d9a03e7f895211b7c98ad (patch)
tree084208404fd826b53f1754f87ec30bae3d6b35cb /Frameworks/QueryKit
parent0c91f439a5b23e1b5a6d8139eb47aa5694e2925f (diff)
parent69db4915523c4c6cc2d8138a72456cb23f47b7ec (diff)
downloadsequelpro-d5e20720cf7f991a691d9a03e7f895211b7c98ad.tar.gz
sequelpro-d5e20720cf7f991a691d9a03e7f895211b7c98ad.tar.bz2
sequelpro-d5e20720cf7f991a691d9a03e7f895211b7c98ad.zip
- Bring SPMySQL Framework integration branch up to date with trunk
Diffstat (limited to 'Frameworks/QueryKit')
-rw-r--r--Frameworks/QueryKit/QueryKit.xcodeproj/project.pbxproj637
-rw-r--r--Frameworks/QueryKit/Resources/Info.plist22
-rw-r--r--Frameworks/QueryKit/Resources/Tests-Info.plist22
-rw-r--r--Frameworks/QueryKit/Source/QKQuery.h (renamed from Frameworks/QueryKit/QKQuery.h)2
-rw-r--r--Frameworks/QueryKit/Source/QKQuery.m (renamed from Frameworks/QueryKit/QKQuery.m)8
-rw-r--r--Frameworks/QueryKit/Source/QKQueryOperators.h (renamed from Frameworks/QueryKit/QKQueryOperators.h)2
-rw-r--r--Frameworks/QueryKit/Source/QKQueryParameter.h (renamed from Frameworks/QueryKit/QKQueryParameter.h)2
-rw-r--r--Frameworks/QueryKit/Source/QKQueryParameter.m (renamed from Frameworks/QueryKit/QKQueryParameter.m)2
-rw-r--r--Frameworks/QueryKit/Source/QKQueryTypes.h (renamed from Frameworks/QueryKit/QKQueryTypes.h)2
-rw-r--r--Frameworks/QueryKit/Source/QKQueryUtilities.h (renamed from Frameworks/QueryKit/QKQueryUtilities.h)2
-rw-r--r--Frameworks/QueryKit/Source/QKQueryUtilities.m (renamed from Frameworks/QueryKit/QKQueryUtilities.m)2
-rw-r--r--Frameworks/QueryKit/Source/QueryKit-Prefix.pch3
-rw-r--r--Frameworks/QueryKit/Source/QueryKit.h (renamed from Frameworks/QueryKit/QueryKit.h)2
-rw-r--r--Frameworks/QueryKit/Tests/QKSelectQueryGroupByTests.h41
-rw-r--r--Frameworks/QueryKit/Tests/QKSelectQueryGroupByTests.m80
-rw-r--r--Frameworks/QueryKit/Tests/QKSelectQueryOrderByTests.h41
-rw-r--r--Frameworks/QueryKit/Tests/QKSelectQueryOrderByTests.m97
-rw-r--r--Frameworks/QueryKit/Tests/QKSelectQueryTests.h41
-rw-r--r--Frameworks/QueryKit/Tests/QKSelectQueryTests.m83
19 files changed, 1078 insertions, 13 deletions
diff --git a/Frameworks/QueryKit/QueryKit.xcodeproj/project.pbxproj b/Frameworks/QueryKit/QueryKit.xcodeproj/project.pbxproj
new file mode 100644
index 00000000..89c50725
--- /dev/null
+++ b/Frameworks/QueryKit/QueryKit.xcodeproj/project.pbxproj
@@ -0,0 +1,637 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1713ECB014F96A5C0013C4F0 /* QKSelectQueryOrderByTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1713ECAF14F96A5C0013C4F0 /* QKSelectQueryOrderByTests.m */; };
+ 1713ECD814F970BB0013C4F0 /* QKSelectQueryGroupByTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1713ECD714F970BB0013C4F0 /* QKSelectQueryGroupByTests.m */; };
+ 17E5951F14F301DF0054EE08 /* QKQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E5951614F301DF0054EE08 /* QKQuery.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 17E5952014F301DF0054EE08 /* QKQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = 17E5951714F301DF0054EE08 /* QKQuery.m */; };
+ 17E5952114F301DF0054EE08 /* QKQueryOperators.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E5951814F301DF0054EE08 /* QKQueryOperators.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 17E5952214F301DF0054EE08 /* QKQueryParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E5951914F301DF0054EE08 /* QKQueryParameter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 17E5952314F301DF0054EE08 /* QKQueryParameter.m in Sources */ = {isa = PBXBuildFile; fileRef = 17E5951A14F301DF0054EE08 /* QKQueryParameter.m */; };
+ 17E5952414F301DF0054EE08 /* QKQueryTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E5951B14F301DF0054EE08 /* QKQueryTypes.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 17E5952514F301DF0054EE08 /* QKQueryUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E5951C14F301DF0054EE08 /* QKQueryUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 17E5952614F301DF0054EE08 /* QKQueryUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 17E5951D14F301DF0054EE08 /* QKQueryUtilities.m */; };
+ 17E5952714F301DF0054EE08 /* QueryKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E5951E14F301DF0054EE08 /* QueryKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 17E595F214F3058F0054EE08 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17E595F114F3058F0054EE08 /* Foundation.framework */; };
+ 17E596A814F308160054EE08 /* QKSelectQueryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 17E5969814F307B70054EE08 /* QKSelectQueryTests.m */; };
+ 17E596A914F308250054EE08 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17E595F114F3058F0054EE08 /* Foundation.framework */; };
+ 17F620BE14F961C1003E7290 /* QueryKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* QueryKit.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 17E596BE14F916B40054EE08 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
+ remoteInfo = QueryKit;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 1713ECAE14F96A5C0013C4F0 /* QKSelectQueryOrderByTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKSelectQueryOrderByTests.h; sourceTree = "<group>"; };
+ 1713ECAF14F96A5C0013C4F0 /* QKSelectQueryOrderByTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKSelectQueryOrderByTests.m; sourceTree = "<group>"; };
+ 1713ECD614F970BB0013C4F0 /* QKSelectQueryGroupByTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKSelectQueryGroupByTests.h; sourceTree = "<group>"; };
+ 1713ECD714F970BB0013C4F0 /* QKSelectQueryGroupByTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKSelectQueryGroupByTests.m; sourceTree = "<group>"; };
+ 17E5951614F301DF0054EE08 /* QKQuery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKQuery.h; sourceTree = "<group>"; };
+ 17E5951714F301DF0054EE08 /* QKQuery.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKQuery.m; sourceTree = "<group>"; };
+ 17E5951814F301DF0054EE08 /* QKQueryOperators.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKQueryOperators.h; sourceTree = "<group>"; };
+ 17E5951914F301DF0054EE08 /* QKQueryParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKQueryParameter.h; sourceTree = "<group>"; };
+ 17E5951A14F301DF0054EE08 /* QKQueryParameter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKQueryParameter.m; sourceTree = "<group>"; };
+ 17E5951B14F301DF0054EE08 /* QKQueryTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKQueryTypes.h; sourceTree = "<group>"; };
+ 17E5951C14F301DF0054EE08 /* QKQueryUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKQueryUtilities.h; sourceTree = "<group>"; };
+ 17E5951D14F301DF0054EE08 /* QKQueryUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKQueryUtilities.m; sourceTree = "<group>"; };
+ 17E5951E14F301DF0054EE08 /* QueryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QueryKit.h; sourceTree = "<group>"; };
+ 17E595F114F3058F0054EE08 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 17E5969714F307B70054EE08 /* QKSelectQueryTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKSelectQueryTests.h; sourceTree = "<group>"; };
+ 17E5969814F307B70054EE08 /* QKSelectQueryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKSelectQueryTests.m; sourceTree = "<group>"; };
+ 17E5969E14F307CE0054EE08 /* Tests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 17E5969F14F307CE0054EE08 /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Tests-Info.plist"; path = "Resources/Tests-Info.plist"; sourceTree = "<group>"; };
+ 32DBCF5E0370ADEE00C91783 /* QueryKit-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "QueryKit-Prefix.pch"; path = "Source/QueryKit-Prefix.pch"; sourceTree = "<group>"; };
+ 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Resources/Info.plist; sourceTree = "<group>"; };
+ 8DC2EF5B0486A6940098B216 /* QueryKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = QueryKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 17E5969B14F307CE0054EE08 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 17E596A914F308250054EE08 /* Foundation.framework in Frameworks */,
+ 17F620BE14F961C1003E7290 /* QueryKit.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 8DC2EF560486A6940098B216 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 17E595F214F3058F0054EE08 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 034768DFFF38A50411DB9C8B /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8DC2EF5B0486A6940098B216 /* QueryKit.framework */,
+ 17E5969E14F307CE0054EE08 /* Tests.octest */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 0867D691FE84028FC02AAC07 /* QueryKit */ = {
+ isa = PBXGroup;
+ children = (
+ 32DBCF5E0370ADEE00C91783 /* QueryKit-Prefix.pch */,
+ 08FB77AEFE84172EC02AAC07 /* Source */,
+ 17E5969614F3079E0054EE08 /* Tests */,
+ 089C1665FE841158C02AAC07 /* Resources */,
+ 0867D69AFE84028FC02AAC07 /* Frameworks */,
+ 034768DFFF38A50411DB9C8B /* Products */,
+ );
+ name = QueryKit;
+ sourceTree = "<group>";
+ };
+ 0867D69AFE84028FC02AAC07 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 17E595F114F3058F0054EE08 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 089C1665FE841158C02AAC07 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 8DC2EF5A0486A6940098B216 /* Info.plist */,
+ 17E5969F14F307CE0054EE08 /* Tests-Info.plist */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 08FB77AEFE84172EC02AAC07 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 17E5951E14F301DF0054EE08 /* QueryKit.h */,
+ 17E5951614F301DF0054EE08 /* QKQuery.h */,
+ 17E5951714F301DF0054EE08 /* QKQuery.m */,
+ 17E5951914F301DF0054EE08 /* QKQueryParameter.h */,
+ 17E5951A14F301DF0054EE08 /* QKQueryParameter.m */,
+ 17E5951C14F301DF0054EE08 /* QKQueryUtilities.h */,
+ 17E5951D14F301DF0054EE08 /* QKQueryUtilities.m */,
+ 17E5952814F301F40054EE08 /* Constants */,
+ );
+ path = Source;
+ sourceTree = "<group>";
+ };
+ 17322A7214FA645300F0CF9B /* SELECT Tests */ = {
+ isa = PBXGroup;
+ children = (
+ 17E5969714F307B70054EE08 /* QKSelectQueryTests.h */,
+ 17E5969814F307B70054EE08 /* QKSelectQueryTests.m */,
+ 1713ECAE14F96A5C0013C4F0 /* QKSelectQueryOrderByTests.h */,
+ 1713ECAF14F96A5C0013C4F0 /* QKSelectQueryOrderByTests.m */,
+ 1713ECD614F970BB0013C4F0 /* QKSelectQueryGroupByTests.h */,
+ 1713ECD714F970BB0013C4F0 /* QKSelectQueryGroupByTests.m */,
+ );
+ name = "SELECT Tests";
+ sourceTree = "<group>";
+ };
+ 17322A7414FA646000F0CF9B /* UPDATE Tests */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = "UPDATE Tests";
+ sourceTree = "<group>";
+ };
+ 17322A7514FA647200F0CF9B /* DELETE Tests */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = "DELETE Tests";
+ sourceTree = "<group>";
+ };
+ 17322A7614FA648100F0CF9B /* INSERT Tests */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = "INSERT Tests";
+ sourceTree = "<group>";
+ };
+ 17E5952814F301F40054EE08 /* Constants */ = {
+ isa = PBXGroup;
+ children = (
+ 17E5951B14F301DF0054EE08 /* QKQueryTypes.h */,
+ 17E5951814F301DF0054EE08 /* QKQueryOperators.h */,
+ );
+ name = Constants;
+ sourceTree = "<group>";
+ };
+ 17E5969614F3079E0054EE08 /* Tests */ = {
+ isa = PBXGroup;
+ children = (
+ 17322A7614FA648100F0CF9B /* INSERT Tests */,
+ 17322A7514FA647200F0CF9B /* DELETE Tests */,
+ 17322A7414FA646000F0CF9B /* UPDATE Tests */,
+ 17322A7214FA645300F0CF9B /* SELECT Tests */,
+ );
+ path = Tests;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 8DC2EF500486A6940098B216 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 17E5951F14F301DF0054EE08 /* QKQuery.h in Headers */,
+ 17E5952114F301DF0054EE08 /* QKQueryOperators.h in Headers */,
+ 17E5952214F301DF0054EE08 /* QKQueryParameter.h in Headers */,
+ 17E5952414F301DF0054EE08 /* QKQueryTypes.h in Headers */,
+ 17E5952514F301DF0054EE08 /* QKQueryUtilities.h in Headers */,
+ 17E5952714F301DF0054EE08 /* QueryKit.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 17E5969D14F307CE0054EE08 /* Tests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 17E596A614F307CE0054EE08 /* Build configuration list for PBXNativeTarget "Tests" */;
+ buildPhases = (
+ 17E5969914F307CE0054EE08 /* Resources */,
+ 17E5969A14F307CE0054EE08 /* Sources */,
+ 17E5969B14F307CE0054EE08 /* Frameworks */,
+ 17E5969C14F307CE0054EE08 /* ShellScript */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 17E596BF14F916B40054EE08 /* PBXTargetDependency */,
+ );
+ name = Tests;
+ productName = Tests;
+ productReference = 17E5969E14F307CE0054EE08 /* Tests.octest */;
+ productType = "com.apple.product-type.bundle";
+ };
+ 8DC2EF4F0486A6940098B216 /* QueryKit */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "QueryKit" */;
+ buildPhases = (
+ 8DC2EF500486A6940098B216 /* Headers */,
+ 8DC2EF520486A6940098B216 /* Resources */,
+ 8DC2EF540486A6940098B216 /* Sources */,
+ 8DC2EF560486A6940098B216 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = QueryKit;
+ productInstallPath = "$(HOME)/Library/Frameworks";
+ productName = QueryKit;
+ productReference = 8DC2EF5B0486A6940098B216 /* QueryKit.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 0867D690FE84028FC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "QueryKit" */;
+ compatibilityVersion = "Xcode 3.1";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
+ mainGroup = 0867D691FE84028FC02AAC07 /* QueryKit */;
+ productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8DC2EF4F0486A6940098B216 /* QueryKit */,
+ 17E5969D14F307CE0054EE08 /* Tests */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 17E5969914F307CE0054EE08 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 8DC2EF520486A6940098B216 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 17E5969C14F307CE0054EE08 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 17E5969A14F307CE0054EE08 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 17E596A814F308160054EE08 /* QKSelectQueryTests.m in Sources */,
+ 1713ECB014F96A5C0013C4F0 /* QKSelectQueryOrderByTests.m in Sources */,
+ 1713ECD814F970BB0013C4F0 /* QKSelectQueryGroupByTests.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 8DC2EF540486A6940098B216 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 17E5952014F301DF0054EE08 /* QKQuery.m in Sources */,
+ 17E5952314F301DF0054EE08 /* QKQueryParameter.m in Sources */,
+ 17E5952614F301DF0054EE08 /* QKQueryUtilities.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 17E596BF14F916B40054EE08 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 8DC2EF4F0486A6940098B216 /* QueryKit */;
+ targetProxy = 17E596BE14F916B40054EE08 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 17E5952D14F302740054EE08 /* Distribution */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Source/QueryKit-Prefix.pch";
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = Resources/Info.plist;
+ INFOPLIST_PREFIX_HEADER = "";
+ PREBINDING = NO;
+ SDKROOT = macosx10.6;
+ VALID_ARCHS = "i386 x86_64";
+ };
+ name = Distribution;
+ };
+ 17E5952E14F302740054EE08 /* Distribution */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_VERSION = A;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Source/QueryKit-Prefix.pch";
+ GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES;
+ GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
+ GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
+ GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
+ GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
+ GCC_WARN_MISSING_PARENTHESES = YES;
+ GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES;
+ GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
+ GCC_WARN_PROTOTYPE_CONVERSION = YES;
+ GCC_WARN_SHADOW = YES;
+ GCC_WARN_SIGN_COMPARE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNKNOWN_PRAGMAS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_LABEL = YES;
+ GCC_WARN_UNUSED_VALUE = YES;
+ INFOPLIST_FILE = Resources/Info.plist;
+ INSTALL_PATH = "@executable_path/../Frameworks";
+ PRODUCT_NAME = QueryKit;
+ WRAPPER_EXTENSION = framework;
+ };
+ name = Distribution;
+ };
+ 17E596A314F307CE0054EE08 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h";
+ INFOPLIST_FILE = "Resources/Tests-Info.plist";
+ INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Cocoa,
+ "-framework",
+ SenTestingKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = Tests;
+ WRAPPER_EXTENSION = octest;
+ };
+ name = Debug;
+ };
+ 17E596A414F307CE0054EE08 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h";
+ INFOPLIST_FILE = "Resources/Tests-Info.plist";
+ INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Cocoa,
+ "-framework",
+ SenTestingKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = Tests;
+ WRAPPER_EXTENSION = octest;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ 17E596A514F307CE0054EE08 /* Distribution */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h";
+ INFOPLIST_FILE = "Resources/Tests-Info.plist";
+ INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Cocoa,
+ "-framework",
+ SenTestingKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = Tests;
+ WRAPPER_EXTENSION = octest;
+ };
+ name = Distribution;
+ };
+ 1DEB91AE08733DA50010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = NO;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ FRAMEWORK_VERSION = A;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Source/QueryKit-Prefix.pch";
+ GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+ GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES;
+ GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
+ GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
+ GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
+ GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
+ GCC_WARN_MISSING_PARENTHESES = YES;
+ GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES;
+ GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
+ GCC_WARN_PROTOTYPE_CONVERSION = YES;
+ GCC_WARN_SHADOW = YES;
+ GCC_WARN_SIGN_COMPARE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNKNOWN_PRAGMAS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_LABEL = YES;
+ GCC_WARN_UNUSED_VALUE = YES;
+ GENERATE_PKGINFO_FILE = YES;
+ INFOPLIST_FILE = Resources/Info.plist;
+ INSTALL_PATH = "@executable_path/../Frameworks";
+ PRODUCT_NAME = QueryKit;
+ WARNING_CFLAGS = "-Wmost";
+ WRAPPER_EXTENSION = framework;
+ };
+ name = Debug;
+ };
+ 1DEB91AF08733DA50010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = (
+ i386,
+ x86_64,
+ ppc,
+ );
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_VERSION = A;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Source/QueryKit-Prefix.pch";
+ GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+ GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES;
+ GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
+ GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
+ GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
+ GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
+ GCC_WARN_MISSING_PARENTHESES = YES;
+ GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES;
+ GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
+ GCC_WARN_PROTOTYPE_CONVERSION = YES;
+ GCC_WARN_SHADOW = YES;
+ GCC_WARN_SIGN_COMPARE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNKNOWN_PRAGMAS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_LABEL = YES;
+ GCC_WARN_UNUSED_VALUE = YES;
+ INFOPLIST_FILE = Resources/Info.plist;
+ INSTALL_PATH = "@executable_path/../Frameworks";
+ PRODUCT_NAME = QueryKit;
+ SDKROOT = macosx10.5;
+ VALID_ARCHS = "ppc i386 x86_64";
+ WRAPPER_EXTENSION = framework;
+ };
+ name = Release;
+ };
+ 1DEB91B208733DA50010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Source/QueryKit-Prefix.pch";
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = Resources/Info.plist;
+ INFOPLIST_PREFIX_HEADER = "";
+ ONLY_ACTIVE_ARCH = YES;
+ PREBINDING = NO;
+ SDKROOT = macosx10.6;
+ VALID_ARCHS = "i386 x86_64";
+ };
+ name = Debug;
+ };
+ 1DEB91B308733DA50010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Source/QueryKit-Prefix.pch";
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = Resources/Info.plist;
+ INFOPLIST_PREFIX_HEADER = "";
+ PREBINDING = NO;
+ SDKROOT = macosx10.6;
+ VALID_ARCHS = "i386 x86_64";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 17E596A614F307CE0054EE08 /* Build configuration list for PBXNativeTarget "Tests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 17E596A314F307CE0054EE08 /* Debug */,
+ 17E596A414F307CE0054EE08 /* Release */,
+ 17E596A514F307CE0054EE08 /* Distribution */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "QueryKit" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB91AE08733DA50010E9CD /* Debug */,
+ 1DEB91AF08733DA50010E9CD /* Release */,
+ 17E5952E14F302740054EE08 /* Distribution */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "QueryKit" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB91B208733DA50010E9CD /* Debug */,
+ 1DEB91B308733DA50010E9CD /* Release */,
+ 17E5952D14F302740054EE08 /* Distribution */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}
diff --git a/Frameworks/QueryKit/Resources/Info.plist b/Frameworks/QueryKit/Resources/Info.plist
new file mode 100644
index 00000000..b76ed0eb
--- /dev/null
+++ b/Frameworks/QueryKit/Resources/Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>QueryKit</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.google.code.sequel-pro.querykit</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+</dict>
+</plist>
diff --git a/Frameworks/QueryKit/Resources/Tests-Info.plist b/Frameworks/QueryKit/Resources/Tests-Info.plist
new file mode 100644
index 00000000..607c2ef5
--- /dev/null
+++ b/Frameworks/QueryKit/Resources/Tests-Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>Tests</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.google.code.sequel-pro.querykit.tests</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+</dict>
+</plist>
diff --git a/Frameworks/QueryKit/QKQuery.h b/Frameworks/QueryKit/Source/QKQuery.h
index b3670808..b45dc556 100644
--- a/Frameworks/QueryKit/QKQuery.h
+++ b/Frameworks/QueryKit/Source/QKQuery.h
@@ -1,5 +1,5 @@
//
-// $Id$
+// $Id: QKQuery.h 3421 2011-09-10 22:58:45Z stuart02 $
//
// QKQuery.h
// sequel-pro
diff --git a/Frameworks/QueryKit/QKQuery.m b/Frameworks/QueryKit/Source/QKQuery.m
index 31755b6d..21053203 100644
--- a/Frameworks/QueryKit/QKQuery.m
+++ b/Frameworks/QueryKit/Source/QKQuery.m
@@ -1,5 +1,5 @@
//
-// $Id$
+// $Id: QKQuery.m 3432 2011-09-27 00:21:35Z stuart02 $
//
// QKQuery.h
// sequel-pro
@@ -81,7 +81,7 @@ static NSString *QKNoQueryTableException = @"QKNoQueryTable";
[self setTable:table];
[self setFields:[[NSMutableArray alloc] init]];
[self setParameters:[[NSMutableArray alloc] init]];
- [self setQueryType:-1];
+ [self setQueryType:(QKQueryType)-1];
[self setQuoteFields:NO];
_orderDescending = NO;
@@ -378,9 +378,7 @@ static NSString *QKNoQueryTableException = @"QKNoQueryTable";
[orderBy setString:[orderBy substringToIndex:([orderBy length] - 2)]];
}
- if (_orderDescending) {
- [orderBy appendString:@" DESC"];
- }
+ [orderBy appendString:_orderDescending ? @" DESC" : @" ASC"];
return orderBy;
}
diff --git a/Frameworks/QueryKit/QKQueryOperators.h b/Frameworks/QueryKit/Source/QKQueryOperators.h
index 247496fd..32e64563 100644
--- a/Frameworks/QueryKit/QKQueryOperators.h
+++ b/Frameworks/QueryKit/Source/QKQueryOperators.h
@@ -1,5 +1,5 @@
//
-// $Id$
+// $Id: QKQueryOperators.h 3423 2011-09-12 16:50:15Z stuart02 $
//
// QKQueryOperators.h
// sequel-pro
diff --git a/Frameworks/QueryKit/QKQueryParameter.h b/Frameworks/QueryKit/Source/QKQueryParameter.h
index 3a24eb8d..78c5739f 100644
--- a/Frameworks/QueryKit/QKQueryParameter.h
+++ b/Frameworks/QueryKit/Source/QKQueryParameter.h
@@ -1,5 +1,5 @@
//
-// $Id$
+// $Id: QKQueryParameter.h 3421 2011-09-10 22:58:45Z stuart02 $
//
// QKQueryParameter.h
// sequel-pro
diff --git a/Frameworks/QueryKit/QKQueryParameter.m b/Frameworks/QueryKit/Source/QKQueryParameter.m
index bc9efa2f..7f6064e6 100644
--- a/Frameworks/QueryKit/QKQueryParameter.m
+++ b/Frameworks/QueryKit/Source/QKQueryParameter.m
@@ -1,5 +1,5 @@
//
-// $Id$
+// $Id: QKQueryParameter.m 3432 2011-09-27 00:21:35Z stuart02 $
//
// QKQueryParameter.m
// sequel-pro
diff --git a/Frameworks/QueryKit/QKQueryTypes.h b/Frameworks/QueryKit/Source/QKQueryTypes.h
index 1e9e7403..4ab338ec 100644
--- a/Frameworks/QueryKit/QKQueryTypes.h
+++ b/Frameworks/QueryKit/Source/QKQueryTypes.h
@@ -1,5 +1,5 @@
//
-// $Id$
+// $Id: QKQueryTypes.h 3423 2011-09-12 16:50:15Z stuart02 $
//
// QKQueryTypes.h
// sequel-pro
diff --git a/Frameworks/QueryKit/QKQueryUtilities.h b/Frameworks/QueryKit/Source/QKQueryUtilities.h
index 352c5533..9049b191 100644
--- a/Frameworks/QueryKit/QKQueryUtilities.h
+++ b/Frameworks/QueryKit/Source/QKQueryUtilities.h
@@ -1,5 +1,5 @@
//
-// $Id$
+// $Id: QKQueryUtilities.h 3421 2011-09-10 22:58:45Z stuart02 $
//
// QKQueryUtilities.h
// sequel-pro
diff --git a/Frameworks/QueryKit/QKQueryUtilities.m b/Frameworks/QueryKit/Source/QKQueryUtilities.m
index 5e4eb4ab..dde1bd77 100644
--- a/Frameworks/QueryKit/QKQueryUtilities.m
+++ b/Frameworks/QueryKit/Source/QKQueryUtilities.m
@@ -1,5 +1,5 @@
//
-// $Id$
+// $Id: QKQueryUtilities.m 3421 2011-09-10 22:58:45Z stuart02 $
//
// QKQueryUtilities.m
// sequel-pro
diff --git a/Frameworks/QueryKit/Source/QueryKit-Prefix.pch b/Frameworks/QueryKit/Source/QueryKit-Prefix.pch
new file mode 100644
index 00000000..60070a9c
--- /dev/null
+++ b/Frameworks/QueryKit/Source/QueryKit-Prefix.pch
@@ -0,0 +1,3 @@
+#ifdef __OBJC__
+ #import <Foundation/Foundation.h>
+#endif
diff --git a/Frameworks/QueryKit/QueryKit.h b/Frameworks/QueryKit/Source/QueryKit.h
index 04c072de..f8570025 100644
--- a/Frameworks/QueryKit/QueryKit.h
+++ b/Frameworks/QueryKit/Source/QueryKit.h
@@ -1,5 +1,5 @@
//
-// $Id$
+// $Id: QueryKit.h 3431 2011-09-26 22:26:24Z stuart02 $
//
// QueryKit.h
// sequel-pro
diff --git a/Frameworks/QueryKit/Tests/QKSelectQueryGroupByTests.h b/Frameworks/QueryKit/Tests/QKSelectQueryGroupByTests.h
new file mode 100644
index 00000000..56907b36
--- /dev/null
+++ b/Frameworks/QueryKit/Tests/QKSelectQueryGroupByTests.h
@@ -0,0 +1,41 @@
+//
+// $Id$
+//
+// QKSelectQueryGroupByTests.h
+// sequel-pro
+//
+// Created by Stuart Connolly (stuconnolly.com) on February 25, 2012
+// Copyright (c) 2012 Stuart Connolly. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// More info at <http://code.google.com/p/sequel-pro/>
+
+#import <QueryKit/QueryKit.h>
+#import <SenTestingKit/SenTestingKit.h>
+
+@interface QKSelectQueryGroupByTests : SenTestCase
+{
+ QKQuery *_query;
+}
+
+@end
diff --git a/Frameworks/QueryKit/Tests/QKSelectQueryGroupByTests.m b/Frameworks/QueryKit/Tests/QKSelectQueryGroupByTests.m
new file mode 100644
index 00000000..9bbe75a2
--- /dev/null
+++ b/Frameworks/QueryKit/Tests/QKSelectQueryGroupByTests.m
@@ -0,0 +1,80 @@
+//
+// $Id$
+//
+// QKSelectQueryGroupByTests.m
+// sequel-pro
+//
+// Created by Stuart Connolly (stuconnolly.com) on February 25, 2012
+// Copyright (c) 2012 Stuart Connolly. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// More info at <http://code.google.com/p/sequel-pro/>
+
+#import "QKSelectQueryGroupByTests.h"
+
+static NSString *QKTestTableName = @"test_table";
+
+static NSString *QKTestFieldOne = @"test_field1";
+static NSString *QKTestFieldTwo = @"test_field2";
+
+@implementation QKSelectQueryGroupByTests
+
+#pragma mark -
+#pragma mark Setup & tear down
+
+- (void)setUp
+{
+ _query = [QKQuery selectQueryFromTable:QKTestTableName];
+
+ [_query addField:QKTestFieldOne];
+ [_query addField:QKTestFieldTwo];
+}
+
+#pragma mark -
+#pragma mark Tests
+
+- (void)testSelectQueryTypeIsCorrect
+{
+ STAssertTrue([[_query query] hasPrefix:@"SELECT"], @"query type");
+}
+
+- (void)testSelectQueryGroupByIsCorrect
+{
+ [_query groupByField:QKTestFieldOne];
+
+ NSString *query = [NSString stringWithFormat:@"GROUP BY %@", QKTestFieldOne];
+
+ STAssertTrue([[_query query] hasSuffix:query], @"query group by");
+}
+
+- (void)testSelectQueryGroupByMultipleFieldsIsCorrect
+{
+ [_query groupByFields:[NSArray arrayWithObjects:QKTestFieldOne, QKTestFieldTwo, nil]];
+
+ NSString *query = [NSString stringWithFormat:@"GROUP BY %@, %@", QKTestFieldOne, QKTestFieldTwo];
+
+ STAssertTrue([[_query query] hasSuffix:query], @"query group by");
+}
+
+
+@end
diff --git a/Frameworks/QueryKit/Tests/QKSelectQueryOrderByTests.h b/Frameworks/QueryKit/Tests/QKSelectQueryOrderByTests.h
new file mode 100644
index 00000000..c457491a
--- /dev/null
+++ b/Frameworks/QueryKit/Tests/QKSelectQueryOrderByTests.h
@@ -0,0 +1,41 @@
+//
+// $Id$
+//
+// QKSelectQueryOrderByTests.h
+// sequel-pro
+//
+// Created by Stuart Connolly (stuconnolly.com) on February 25, 2012
+// Copyright (c) 2012 Stuart Connolly. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// More info at <http://code.google.com/p/sequel-pro/>
+
+#import <QueryKit/QueryKit.h>
+#import <SenTestingKit/SenTestingKit.h>
+
+@interface QKSelectQueryOrderByTests : SenTestCase
+{
+ QKQuery *_query;
+}
+
+@end
diff --git a/Frameworks/QueryKit/Tests/QKSelectQueryOrderByTests.m b/Frameworks/QueryKit/Tests/QKSelectQueryOrderByTests.m
new file mode 100644
index 00000000..84bd5ddb
--- /dev/null
+++ b/Frameworks/QueryKit/Tests/QKSelectQueryOrderByTests.m
@@ -0,0 +1,97 @@
+//
+// $Id$
+//
+// QKSelectQueryOrderByTests.m
+// sequel-pro
+//
+// Created by Stuart Connolly (stuconnolly.com) on February 25, 2012
+// Copyright (c) 2012 Stuart Connolly. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// More info at <http://code.google.com/p/sequel-pro/>
+
+#import "QKSelectQueryOrderByTests.h"
+
+static NSString *QKTestTableName = @"test_table";
+
+static NSString *QKTestFieldOne = @"test_field1";
+static NSString *QKTestFieldTwo = @"test_field2";
+
+@implementation QKSelectQueryOrderByTests
+
+#pragma mark -
+#pragma mark Setup & tear down
+
+- (void)setUp
+{
+ _query = [QKQuery selectQueryFromTable:QKTestTableName];
+
+ [_query addField:QKTestFieldOne];
+ [_query addField:QKTestFieldTwo];
+}
+
+#pragma mark -
+#pragma mark Tests
+
+- (void)testSelectQueryTypeIsCorrect
+{
+ STAssertTrue([[_query query] hasPrefix:@"SELECT"], @"query type");
+}
+
+- (void)testSelectQueryOrderByAscendingIsCorrect
+{
+ [_query orderByField:QKTestFieldOne descending:NO];
+
+ NSString *query = [NSString stringWithFormat:@"ORDER BY %@ ASC", QKTestFieldOne];
+
+ STAssertTrue([[_query query] hasSuffix:query], @"query order by");
+}
+
+- (void)testSelectQueryOrderByMultipleFieldsAscendingIsCorrect
+{
+ [_query orderByFields:[NSArray arrayWithObjects:QKTestFieldOne, QKTestFieldTwo, nil] descending:NO];
+
+ NSString *query = [NSString stringWithFormat:@"ORDER BY %@, %@ ASC", QKTestFieldOne, QKTestFieldTwo];
+
+ STAssertTrue([[_query query] hasSuffix:query], @"query order by");
+}
+
+- (void)testSelectQueryOrderByDescendingIsCorrect
+{
+ [_query orderByField:QKTestFieldOne descending:YES];
+
+ NSString *query = [NSString stringWithFormat:@"ORDER BY %@ DESC", QKTestFieldOne];
+
+ STAssertTrue([[_query query] hasSuffix:query], @"query order by");
+}
+
+- (void)testSelectQueryOrderByMultipleFieldsDescendingIsCorrect
+{
+ [_query orderByFields:[NSArray arrayWithObjects:QKTestFieldOne, QKTestFieldTwo, nil] descending:YES];
+
+ NSString *query = [NSString stringWithFormat:@"ORDER BY %@, %@ DESC", QKTestFieldOne, QKTestFieldTwo];
+
+ STAssertTrue([[_query query] hasSuffix:query], @"query order by");
+}
+
+@end
diff --git a/Frameworks/QueryKit/Tests/QKSelectQueryTests.h b/Frameworks/QueryKit/Tests/QKSelectQueryTests.h
new file mode 100644
index 00000000..df9e3272
--- /dev/null
+++ b/Frameworks/QueryKit/Tests/QKSelectQueryTests.h
@@ -0,0 +1,41 @@
+//
+// $Id$
+//
+// QKSelectQueryTests.h
+// sequel-pro
+//
+// Created by Stuart Connolly (stuconnolly.com) on September 4, 2011
+// Copyright (c) 2011 Stuart Connolly. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// More info at <http://code.google.com/p/sequel-pro/>
+
+#import <QueryKit/QueryKit.h>
+#import <SenTestingKit/SenTestingKit.h>
+
+@interface QKSelectQueryTests : SenTestCase
+{
+ QKQuery *_query;
+}
+
+@end
diff --git a/Frameworks/QueryKit/Tests/QKSelectQueryTests.m b/Frameworks/QueryKit/Tests/QKSelectQueryTests.m
new file mode 100644
index 00000000..620dbadd
--- /dev/null
+++ b/Frameworks/QueryKit/Tests/QKSelectQueryTests.m
@@ -0,0 +1,83 @@
+//
+// $Id$
+//
+// QKSelectQueryTests.m
+// sequel-pro
+//
+// Created by Stuart Connolly (stuconnolly.com) on September 4, 2011
+// Copyright (c) 2011 Stuart Connolly. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// More info at <http://code.google.com/p/sequel-pro/>
+
+#import "QKSelectQueryTests.h"
+
+static NSString *QKTestTableName = @"test_table";
+
+static NSString *QKTestFieldOne = @"test_field1";
+static NSString *QKTestFieldTwo = @"test_field2";
+static NSString *QKTestFieldThree = @"test_field3";
+static NSString *QKTestFieldFour = @"test_field4";
+
+static NSUInteger QKTestParameterOne = 10;
+
+@implementation QKSelectQueryTests
+
+#pragma mark -
+#pragma mark Setup & tear down
+
+- (void)setUp
+{
+ _query = [QKQuery selectQueryFromTable:QKTestTableName];
+
+ [_query addField:QKTestFieldOne];
+ [_query addField:QKTestFieldTwo];
+ [_query addField:QKTestFieldThree];
+ [_query addField:QKTestFieldFour];
+
+ [_query addParameter:QKTestFieldOne operator:QKEqualityOperator value:[NSNumber numberWithUnsignedInteger:QKTestParameterOne]];
+}
+
+#pragma mark -
+#pragma mark Tests
+
+- (void)testSelectQueryTypeIsCorrect
+{
+ STAssertTrue([[_query query] hasPrefix:@"SELECT"], @"query type");
+}
+
+- (void)testSelectQueryFieldsAreCorrect
+{
+ NSString *query = [NSString stringWithFormat:@"SELECT %@, %@, %@, %@", QKTestFieldOne, QKTestFieldTwo, QKTestFieldThree, QKTestFieldFour];
+
+ STAssertTrue([[_query query] hasPrefix:query], @"query fields");
+}
+
+- (void)testSelectQueryConstraintsAreCorrect
+{
+ NSString *query = [NSString stringWithFormat:@"WHERE %@ %@ %@", QKTestFieldOne, [QKQueryUtilities operatorRepresentationForType:QKEqualityOperator], [NSNumber numberWithUnsignedInteger:QKTestParameterOne]];
+
+ STAssertTrue(([[_query query] rangeOfString:query].location != NSNotFound), @"query constraints");
+}
+
+@end