diff options
25 files changed, 1117 insertions, 298 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/Resources/Plists/QueryKit-Info.plist b/Frameworks/QueryKit/Resources/Info.plist index b76ed0eb..b76ed0eb 100644 --- a/Resources/Plists/QueryKit-Info.plist +++ b/Frameworks/QueryKit/Resources/Info.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/UnitTests/QKSelectQueryTests.m b/Frameworks/QueryKit/Tests/QKSelectQueryTests.m index 84b4584c..620dbadd 100644 --- a/UnitTests/QKSelectQueryTests.m +++ b/Frameworks/QueryKit/Tests/QKSelectQueryTests.m @@ -7,19 +7,26 @@ // Created by Stuart Connolly (stuconnolly.com) on September 4, 2011 // Copyright (c) 2011 Stuart Connolly. All rights reserved. // -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// 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: // -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. // -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// 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/> diff --git a/Source/SPArrayAdditions.h b/Source/SPArrayAdditions.h index e08bfa33..abeec095 100644 --- a/Source/SPArrayAdditions.h +++ b/Source/SPArrayAdditions.h @@ -27,9 +27,41 @@ static inline id NSArrayObjectAtIndex(NSArray *self, NSUInteger i) return (id)CFArrayGetValueAtIndex((CFArrayRef)self, (long)i); } -static inline void NSMutableArrayAddObject(NSArray *self, id anObject) +/** + * Set up a static function to allow fast mutable array insertion using + * cached selectors. + * At least in 10.7, inserting items into an array at a known point + * using NSMutableArray methods appears to be the fastest way of adding + * items to a CF/NSMutableArray. + */ +static inline void NSMutableArrayInsertObject(NSMutableArray *self, id anObject, NSUInteger anIndex) { - CFArrayAppendValue((CFMutableArrayRef)self, anObject); + typedef id (*NSMutableArrayInsertObjectPtr)(NSMutableArray*, SEL, id, NSUInteger); + static NSMutableArrayInsertObjectPtr cachedMethodPointer; + static SEL cachedSelector; + + if (!cachedSelector) cachedSelector = @selector(insertObject:atIndex:); + if (!cachedMethodPointer) cachedMethodPointer = (NSMutableArrayInsertObjectPtr)[self methodForSelector:cachedSelector]; + + cachedMethodPointer(self, cachedSelector, anObject, anIndex); +} +/** + * Set up a static function to allow fast mutable array insertion using + * cached selectors. + * At least in 10.7, adding items to an array using NSMutableArray methods + * appears to be the fastest approach to adding items to a CF/NSMutableArray; + * only NSMutableArrayInsertObject is faster if the position is known. + */ +static inline void NSMutableArrayAddObject(NSMutableArray *self, id anObject) +{ + typedef id (*NSMutableArrayAddObjectPtr)(NSMutableArray*, SEL, id); + static NSMutableArrayAddObjectPtr cachedMethodPointer; + static SEL cachedSelector; + + if (!cachedSelector) cachedSelector = @selector(addObject:); + if (!cachedMethodPointer) cachedMethodPointer = (NSMutableArrayAddObjectPtr)[self methodForSelector:cachedSelector]; + + cachedMethodPointer(self, cachedSelector, anObject); } static inline void NSMutableArrayReplaceObject(NSArray *self, CFIndex idx, id anObject) diff --git a/Source/SPExtendedTableInfo.h b/Source/SPExtendedTableInfo.h index dfe6a9e0..72087f67 100644 --- a/Source/SPExtendedTableInfo.h +++ b/Source/SPExtendedTableInfo.h @@ -58,7 +58,7 @@ SPMySQLConnection *connection; } -@property (readwrite, assign) SPMySQLConnection *connection; +@property (readwrite, retain) SPMySQLConnection *connection; // IBAction methods - (IBAction)reloadTable:(id)sender; diff --git a/Source/SPNarrowDownCompletion.m b/Source/SPNarrowDownCompletion.m index abc40a4e..5e7b5320 100644 --- a/Source/SPNarrowDownCompletion.m +++ b/Source/SPNarrowDownCompletion.m @@ -171,6 +171,13 @@ - (void)close { + + // Invalidate the timer now to prevent retain cycles preventing deallocation + if (stateTimer != nil) { + [stateTimer invalidate]; + [stateTimer release]; + } + closeMe = YES; [theView setCompletionIsOpen:NO]; [super close]; diff --git a/Source/SPTableTriggers.m b/Source/SPTableTriggers.m index 715498bb..393b0568 100644 --- a/Source/SPTableTriggers.m +++ b/Source/SPTableTriggers.m @@ -352,7 +352,7 @@ static const NSString *SPTriggerSQLMode = @"TriggerSQLMode"; if ([tableDocumentInstance isWorking]) return NO; // Start Edit panel - if (([triggerData count] > rowIndex) && [triggerData objectAtIndex:rowIndex]) { + if (((NSInteger)[triggerData count] > rowIndex) && [triggerData objectAtIndex:rowIndex]) { [self _editTriggerAtIndex:rowIndex]; } diff --git a/UnitTests/QKSelectQueryTests.h b/UnitTests/QKSelectQueryTests.h deleted file mode 100644 index 5a7bdafc..00000000 --- a/UnitTests/QKSelectQueryTests.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// $Id$ -// -// QKSelectQueryTests.h -// sequel-pro -// -// Created by Stuart Connolly (stuconnolly.com) on September 4, 2011 -// Copyright (c) 2011 Stuart Connolly. All rights reserved. -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// 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/sequel-pro.xcodeproj/project.pbxproj b/sequel-pro.xcodeproj/project.pbxproj index 3673d7d1..62945ff0 100644 --- a/sequel-pro.xcodeproj/project.pbxproj +++ b/sequel-pro.xcodeproj/project.pbxproj @@ -149,16 +149,6 @@ 17F90E2C1210B34900274C98 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 17F90E2B1210B34900274C98 /* Credits.rtf */; }; 17F90E481210B42700274C98 /* SPExportFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 17F90E471210B42700274C98 /* SPExportFile.m */; }; 17F90E4B1210B43A00274C98 /* SPExportFileUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 17F90E4A1210B43A00274C98 /* SPExportFileUtilities.m */; }; - 17FC35C01413D13F00AC3602 /* QKQueryOperators.h in Headers */ = {isa = PBXBuildFile; fileRef = 17FC358B1413CF7200AC3602 /* QKQueryOperators.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17FC35C21413D14000AC3602 /* QKQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 17FC358D1413CF7200AC3602 /* QKQuery.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17FC35C31413D14100AC3602 /* QKQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = 17FC358E1413CF7200AC3602 /* QKQuery.m */; }; - 17FC35C91413D14800AC3602 /* QKQueryTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 17FC35941413CF7200AC3602 /* QKQueryTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17FC35CA1413D14A00AC3602 /* QueryKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 17FC35911413CF7200AC3602 /* QueryKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17FC360B1413DAED00AC3602 /* QKQueryParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17FC36091413DAED00AC3602 /* QKQueryParameter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17FC360C1413DAED00AC3602 /* QKQueryParameter.m in Sources */ = {isa = PBXBuildFile; fileRef = 17FC360A1413DAED00AC3602 /* QKQueryParameter.m */; }; - 17FC3626141411B800AC3602 /* QKQueryUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 17FC3624141411B800AC3602 /* QKQueryUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17FC3627141411B800AC3602 /* QKQueryUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 17FC3625141411B800AC3602 /* QKQueryUtilities.m */; }; - 17FC3634141415F100AC3602 /* QKSelectQueryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 17FC3633141415F100AC3602 /* QKSelectQueryTests.m */; }; 17FDB04C1280778B00DBBBC2 /* SPFontPreviewTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 17FDB04B1280778B00DBBBC2 /* SPFontPreviewTextField.m */; }; 296DC89F0F8FD336002A3258 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 296DC89E0F8FD336002A3258 /* WebKit.framework */; }; 296DC8B60F909194002A3258 /* MGTemplateEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 296DC8A70F909194002A3258 /* MGTemplateEngine.m */; }; @@ -217,10 +207,11 @@ 58475704120A1B290057631F /* SPQLPluginQueryFavoritesTemplate.html in Resources */ = {isa = PBXBuildFile; fileRef = 584756FE120A1B290057631F /* SPQLPluginQueryFavoritesTemplate.html */; }; 58475705120A1B290057631F /* SPQLPluginSQLTemplate.html in Resources */ = {isa = PBXBuildFile; fileRef = 58475700120A1B290057631F /* SPQLPluginSQLTemplate.html */; }; 5847577D120A1E8A0057631F /* Sequel Pro.qlgenerator in Copy QuickLook Plugins */ = {isa = PBXBuildFile; fileRef = 584754C2120A04560057631F /* Sequel Pro.qlgenerator */; }; + 584D804A15056AC200F24774 /* SPMySQL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 584D804315056AA700F24774 /* SPMySQL.framework */; }; + 584D804D15056ACB00F24774 /* SPMySQL.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 584D804315056AA700F24774 /* SPMySQL.framework */; }; 584F5F8F0F50ACD800036517 /* table-view-small.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 584F5F8E0F50ACD800036517 /* table-view-small.tiff */; }; - 586AA0D214F1CE38007F82BF /* SPMySQL.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 586AA0CC14F1CE0C007F82BF /* SPMySQL.framework */; }; - 586AA0D314F1CE44007F82BF /* SPMySQL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 586AA0CC14F1CE0C007F82BF /* SPMySQL.framework */; }; - 586AA28D14F57E98007F82BF /* SPObjectAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 586AA28C14F57E98007F82BF /* SPObjectAdditions.m */; }; + 586AAB1514FAD3AF007F82BF /* QueryKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17E5955314F304000054EE08 /* QueryKit.framework */; }; + 586AAB9314FAD40D007F82BF /* QueryKit.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 17E5955314F304000054EE08 /* QueryKit.framework */; }; 586EBD2411418D7C00B3DE45 /* FeedbackReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 586EBD2311418D7C00B3DE45 /* FeedbackReporter.framework */; }; 586EBD5D11418D9400B3DE45 /* FeedbackReporter.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 586EBD2311418D7C00B3DE45 /* FeedbackReporter.framework */; }; 586F457B0FDB269E00B428D7 /* RegexKitLite.m in Sources */ = {isa = PBXBuildFile; fileRef = 296DC8AB0F909194002A3258 /* RegexKitLite.m */; }; @@ -471,13 +462,20 @@ remoteGlobalIDString = 58B9096011C3A42B000826E5; remoteInfo = xibLocalizationPostprocessor; }; - 17FC36351414164000AC3602 /* PBXContainerItemProxy */ = { + 17E5955214F304000054EE08 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 2A37F4A9FDCFA73011CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 17FC35AB1413CFE700AC3602; + containerPortal = 17E5954E14F304000054EE08 /* QueryKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 8DC2EF5B0486A6940098B216; remoteInfo = QueryKit; }; + 17E596A114F307CE0054EE08 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 17E5954E14F304000054EE08 /* QueryKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 17E5969E14F307CE0054EE08; + remoteInfo = Tests; + }; 5847571D120A1C6D0057631F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 2A37F4A9FDCFA73011CA2CEA /* Project object */; @@ -485,20 +483,27 @@ remoteGlobalIDString = 584754C1120A04560057631F; remoteInfo = "Sequel Pro QLGenerator"; }; - 586AA0CB14F1CE0C007F82BF /* PBXContainerItemProxy */ = { + 584D804215056AA700F24774 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 586AA0C414F1CE0C007F82BF /* SPMySQLFramework.xcodeproj */; + containerPortal = 584D803E15056AA700F24774 /* SPMySQLFramework.xcodeproj */; proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; + remoteGlobalIDString = 8DC2EF5B0486A6940098B216 /* SPMySQL.framework */; remoteInfo = SPMySQL.framework; }; - 586AA0D014F1CE19007F82BF /* PBXContainerItemProxy */ = { + 584D804815056AB700F24774 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 586AA0C414F1CE0C007F82BF /* SPMySQLFramework.xcodeproj */; + containerPortal = 584D803E15056AA700F24774 /* SPMySQLFramework.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; + remoteGlobalIDString = 8DC2EF4F0486A6940098B216 /* SPMySQL.framework */; remoteInfo = SPMySQL.framework; }; + 586AAB0F14FAD3A2007F82BF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 17E5954E14F304000054EE08 /* QueryKit.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 8DC2EF4F0486A6940098B216; + remoteInfo = QueryKit; + }; 58B907CC11BDA552000826E5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 2A37F4A9FDCFA73011CA2CEA /* Project object */; @@ -540,7 +545,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 586AA0D214F1CE38007F82BF /* SPMySQL.framework in Copy Frameworks */, 58B907FB11BDA5A9000826E5 /* PSMTabBar.framework in Copy Frameworks */, 4DECC4910EC2B436008D359E /* Growl.framework in Copy Frameworks */, 4DECC48F0EC2B436008D359E /* Sparkle.framework in Copy Frameworks */, @@ -548,6 +552,8 @@ 586EBD5D11418D9400B3DE45 /* FeedbackReporter.framework in Copy Frameworks */, 58C6C71F11FBB18000A3F5E9 /* UniversalDetector.framework in Copy Frameworks */, 58DC0D7C12932AB200B76DA5 /* ShortcutRecorder.framework in Copy Frameworks */, + 586AAB9314FAD40D007F82BF /* QueryKit.framework in Copy Frameworks */, + 584D804D15056ACB00F24774 /* SPMySQL.framework in Copy Frameworks */, ); name = "Copy Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -756,6 +762,7 @@ 17E090E711498FC9007FC1B4 /* SPPrintController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPPrintController.m; sourceTree = "<group>"; }; 17E0937D114AE154007FC1B4 /* SPTableInfoPrintTemplate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = SPTableInfoPrintTemplate.html; path = Templates/SPTableInfoPrintTemplate.html; sourceTree = "<group>"; }; 17E20E1E12D6645F007F75A6 /* run-tests.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "run-tests.sh"; sourceTree = "<group>"; }; + 17E5954E14F304000054EE08 /* QueryKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = QueryKit.xcodeproj; path = Frameworks/QueryKit/QueryKit.xcodeproj; sourceTree = "<group>"; }; 17E641440EF01EB5001BC333 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 17E641450EF01EB5001BC333 /* Sequel-Pro.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Sequel-Pro.pch"; sourceTree = "<group>"; }; 17E641480EF01EF6001BC333 /* SPCustomQuery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPCustomQuery.h; sourceTree = "<group>"; }; @@ -815,19 +822,6 @@ 17F90E471210B42700274C98 /* SPExportFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPExportFile.m; sourceTree = "<group>"; }; 17F90E491210B43A00274C98 /* SPExportFileUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPExportFileUtilities.h; sourceTree = "<group>"; }; 17F90E4A1210B43A00274C98 /* SPExportFileUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPExportFileUtilities.m; sourceTree = "<group>"; }; - 17FC358B1413CF7200AC3602 /* QKQueryOperators.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKQueryOperators.h; sourceTree = "<group>"; }; - 17FC358D1413CF7200AC3602 /* QKQuery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKQuery.h; sourceTree = "<group>"; }; - 17FC358E1413CF7200AC3602 /* QKQuery.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKQuery.m; sourceTree = "<group>"; }; - 17FC35911413CF7200AC3602 /* QueryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QueryKit.h; sourceTree = "<group>"; }; - 17FC35941413CF7200AC3602 /* QKQueryTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKQueryTypes.h; sourceTree = "<group>"; }; - 17FC35A01413CFBC00AC3602 /* QueryKit-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "QueryKit-Info.plist"; path = "Plists/QueryKit-Info.plist"; sourceTree = "<group>"; }; - 17FC35AC1413CFE700AC3602 /* QueryKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = QueryKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 17FC36091413DAED00AC3602 /* QKQueryParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKQueryParameter.h; sourceTree = "<group>"; }; - 17FC360A1413DAED00AC3602 /* QKQueryParameter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKQueryParameter.m; sourceTree = "<group>"; }; - 17FC3624141411B800AC3602 /* QKQueryUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKQueryUtilities.h; sourceTree = "<group>"; }; - 17FC3625141411B800AC3602 /* QKQueryUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKQueryUtilities.m; sourceTree = "<group>"; }; - 17FC3632141415F100AC3602 /* QKSelectQueryTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKSelectQueryTests.h; sourceTree = "<group>"; }; - 17FC3633141415F100AC3602 /* QKSelectQueryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKSelectQueryTests.m; sourceTree = "<group>"; }; 17FDB04A1280778B00DBBBC2 /* SPFontPreviewTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPFontPreviewTextField.h; sourceTree = "<group>"; }; 17FDB04B1280778B00DBBBC2 /* SPFontPreviewTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPFontPreviewTextField.m; sourceTree = "<group>"; }; 296DC89E0F8FD336002A3258 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; }; @@ -921,10 +915,8 @@ 58475707120A1B630057631F /* German */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = German; path = German.lproj/SPQLPluginContentFiltersTemplate.html; sourceTree = "<group>"; }; 58475708120A1B630057631F /* German */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = German; path = German.lproj/SPQLPluginQueryFavoritesTemplate.html; sourceTree = "<group>"; }; 58475709120A1B630057631F /* German */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = German; path = German.lproj/SPQLPluginSQLTemplate.html; sourceTree = "<group>"; }; + 584D803E15056AA700F24774 /* SPMySQLFramework.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SPMySQLFramework.xcodeproj; path = Frameworks/SPMySQLFramework/SPMySQLFramework.xcodeproj; sourceTree = "<group>"; }; 584F5F8E0F50ACD800036517 /* table-view-small.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "table-view-small.tiff"; sourceTree = "<group>"; }; - 586AA0C414F1CE0C007F82BF /* SPMySQLFramework.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SPMySQLFramework.xcodeproj; path = Frameworks/SPMySQLFramework/SPMySQLFramework.xcodeproj; sourceTree = "<group>"; }; - 586AA28B14F57E98007F82BF /* SPObjectAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPObjectAdditions.h; sourceTree = "<group>"; }; - 586AA28C14F57E98007F82BF /* SPObjectAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPObjectAdditions.m; sourceTree = "<group>"; }; 586EBD2311418D7C00B3DE45 /* FeedbackReporter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FeedbackReporter.framework; path = Frameworks/FeedbackReporter.framework; sourceTree = "<group>"; }; 586F432A0FD74CFC00B428D7 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/SSHQuestionDialog.xib; sourceTree = "<group>"; }; 5870868210FA3E9C00D58E1C /* SPDataStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPDataStorage.h; sourceTree = "<group>"; }; @@ -1251,13 +1243,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 17FC35AA1413CFE700AC3602 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 584754C0120A04560057631F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1302,12 +1287,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 586AA0D314F1CE44007F82BF /* SPMySQL.framework in Frameworks */, 296DC8BF0F9091DF002A3258 /* libicucore.dylib in Frameworks */, 8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */, 4DECC3370EC2A170008D359E /* Growl.framework in Frameworks */, B5EAC0FD0EC87FF900CC579C /* Security.framework in Frameworks */, 4DECC3350EC2A170008D359E /* Sparkle.framework in Frameworks */, + 586AAB1514FAD3AF007F82BF /* QueryKit.framework in Frameworks */, + 584D804A15056AC200F24774 /* SPMySQL.framework in Frameworks */, 296DC89F0F8FD336002A3258 /* WebKit.framework in Frameworks */, 58B907CA11BDA541000826E5 /* PSMTabBar.framework in Frameworks */, 58C458DF10CF188F00E6E13E /* libcrypto.dylib in Frameworks */, @@ -1624,7 +1610,6 @@ children = ( 17E641F60EF02088001BC333 /* Info.plist */, 17DD52C1115074B3007D8950 /* InfoPlist.strings */, - 17FC35A01413CFBC00AC3602 /* QueryKit-Info.plist */, 17DA04EA0FC1A7DA00D66140 /* Unit Tests-Info.plist */, B58731270F838C9E00087794 /* PreferenceDefaults.plist */, 17B7B58B1016022C00F057DE /* MCPKit-Info.plist */, @@ -1877,6 +1862,15 @@ name = "Outline Views"; sourceTree = "<group>"; }; + 17E5954F14F304000054EE08 /* Products */ = { + isa = PBXGroup; + children = ( + 17E5955314F304000054EE08 /* QueryKit.framework */, + 17E596A214F307CE0054EE08 /* Tests.octest */, + ); + name = Products; + sourceTree = "<group>"; + }; 17E641420EF01E8A001BC333 /* Source */ = { isa = PBXGroup; children = ( @@ -2172,45 +2166,10 @@ name = Model; sourceTree = "<group>"; }; - 17FC358A1413CF7200AC3602 /* QueryKit */ = { - isa = PBXGroup; - children = ( - 17FC35911413CF7200AC3602 /* QueryKit.h */, - 17FC358D1413CF7200AC3602 /* QKQuery.h */, - 17FC358E1413CF7200AC3602 /* QKQuery.m */, - 17FC3624141411B800AC3602 /* QKQueryUtilities.h */, - 17FC3625141411B800AC3602 /* QKQueryUtilities.m */, - 17FC36091413DAED00AC3602 /* QKQueryParameter.h */, - 17FC360A1413DAED00AC3602 /* QKQueryParameter.m */, - 17FC35D31413D3BC00AC3602 /* Constants */, - ); - name = QueryKit; - path = Frameworks/QueryKit; - sourceTree = "<group>"; - }; - 17FC35D31413D3BC00AC3602 /* Constants */ = { - isa = PBXGroup; - children = ( - 17FC35941413CF7200AC3602 /* QKQueryTypes.h */, - 17FC358B1413CF7200AC3602 /* QKQueryOperators.h */, - ); - name = Constants; - sourceTree = "<group>"; - }; - 17FC362C141415C200AC3602 /* QueryKit */ = { - isa = PBXGroup; - children = ( - 17FC3632141415F100AC3602 /* QKSelectQueryTests.h */, - 17FC3633141415F100AC3602 /* QKSelectQueryTests.m */, - ); - name = QueryKit; - sourceTree = "<group>"; - }; 17FC366814141A4B00AC3602 /* Frameworks */ = { isa = PBXGroup; children = ( 17DC885B126B36CF00E9AAEC /* MCPKit */, - 17FC362C141415C200AC3602 /* QueryKit */, ); name = Frameworks; sourceTree = "<group>"; @@ -2218,9 +2177,9 @@ 17FC36AE141425D600AC3602 /* Frameworks */ = { isa = PBXGroup; children = ( - 586AA0C414F1CE0C007F82BF /* SPMySQLFramework.xcodeproj */, + 17E5954E14F304000054EE08 /* QueryKit.xcodeproj */, + 584D803E15056AA700F24774 /* SPMySQLFramework.xcodeproj */, 58B906F811BD9B34000826E5 /* PSMTabBar */, - 17FC358A1413CF7200AC3602 /* QueryKit */, ); name = Frameworks; path = ..; @@ -2244,7 +2203,6 @@ 58B906E611BD989A000826E5 /* PSMTabBar.framework */, 58B9096111C3A42B000826E5 /* xibLocalizationPostprocessor */, 584754C2120A04560057631F /* Sequel Pro.qlgenerator */, - 17FC35AC1413CFE700AC3602 /* QueryKit.framework */, ); name = Products; sourceTree = "<group>"; @@ -2341,10 +2299,10 @@ name = "QuickLook Plugin"; sourceTree = "<group>"; }; - 586AA0C514F1CE0C007F82BF /* Products */ = { + 584D803F15056AA700F24774 /* Products */ = { isa = PBXGroup; children = ( - 586AA0CC14F1CE0C007F82BF /* SPMySQL.framework */, + 584D804315056AA700F24774 /* SPMySQL.framework */, ); name = Products; sourceTree = "<group>"; @@ -2523,8 +2481,6 @@ B52460D40F8EF92300171639 /* SPArrayAdditions.m */, 1789343A0F30C1DD0097539A /* SPStringAdditions.h */, 1789343B0F30C1DD0097539A /* SPStringAdditions.m */, - 586AA28B14F57E98007F82BF /* SPObjectAdditions.h */, - 586AA28C14F57E98007F82BF /* SPObjectAdditions.m */, 58DC10D112A1B8DF00B76DA5 /* SPMenuAdditions.h */, 58DC10D212A1B8DF00B76DA5 /* SPMenuAdditions.m */, B52460D50F8EF92300171639 /* SPTextViewAdditions.h */, @@ -2550,19 +2506,6 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 17FC35A71413CFE700AC3602 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 17FC35C01413D13F00AC3602 /* QKQueryOperators.h in Headers */, - 17FC35C21413D14000AC3602 /* QKQuery.h in Headers */, - 17FC35C91413D14800AC3602 /* QKQueryTypes.h in Headers */, - 17FC35CA1413D14A00AC3602 /* QueryKit.h in Headers */, - 17FC360B1413DAED00AC3602 /* QKQueryParameter.h in Headers */, - 17FC3626141411B800AC3602 /* QKQueryUtilities.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 58B906E111BD989A000826E5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2596,23 +2539,6 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 17FC35AB1413CFE700AC3602 /* QueryKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = 17FC35B11413CFE800AC3602 /* Build configuration list for PBXNativeTarget "QueryKit" */; - buildPhases = ( - 17FC35A71413CFE700AC3602 /* Headers */, - 17FC35A91413CFE700AC3602 /* Sources */, - 17FC35AA1413CFE700AC3602 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = QueryKit; - productName = QueryKit; - productReference = 17FC35AC1413CFE700AC3602 /* QueryKit.framework */; - productType = "com.apple.product-type.framework"; - }; 380F4ED80FC0B50500B0BFD7 /* Unit Tests */ = { isa = PBXNativeTarget; buildConfigurationList = 380F4EDE0FC0B50600B0BFD7 /* Build configuration list for PBXNativeTarget "Unit Tests" */; @@ -2626,7 +2552,6 @@ ); dependencies = ( 1798AB0012676BAD000D946A /* PBXTargetDependency */, - 17FC36361414164000AC3602 /* PBXTargetDependency */, ); name = "Unit Tests"; productName = "Unit Tests"; @@ -2719,7 +2644,8 @@ 58CDB34B0FCE144000F8ACA3 /* PBXTargetDependency */, 58B9097011C3A462000826E5 /* PBXTargetDependency */, 5847571E120A1C6D0057631F /* PBXTargetDependency */, - 586AA0D114F1CE19007F82BF /* PBXTargetDependency */, + 586AAB1014FAD3A2007F82BF /* PBXTargetDependency */, + 584D804915056AB700F24774 /* PBXTargetDependency */, ); name = "Sequel Pro"; productInstallPath = "$(HOME)/Applications"; @@ -2747,8 +2673,12 @@ projectDirPath = ""; projectReferences = ( { - ProductGroup = 586AA0C514F1CE0C007F82BF /* Products */; - ProjectRef = 586AA0C414F1CE0C007F82BF /* SPMySQLFramework.xcodeproj */; + ProductGroup = 17E5954F14F304000054EE08 /* Products */; + ProjectRef = 17E5954E14F304000054EE08 /* QueryKit.xcodeproj */; + }, + { + ProductGroup = 584D803F15056AA700F24774 /* Products */; + ProjectRef = 584D803E15056AA700F24774 /* SPMySQLFramework.xcodeproj */; }, ); projectRoot = ""; @@ -2757,7 +2687,6 @@ 380F4ED80FC0B50500B0BFD7 /* Unit Tests */, 58CDB3350FCE13C900F8ACA3 /* SequelProTunnelAssistant */, 58B906E511BD989A000826E5 /* PSMTabBar */, - 17FC35AB1413CFE700AC3602 /* QueryKit */, 58B9096011C3A42B000826E5 /* xibLocalizationPostprocessor */, 584754C1120A04560057631F /* Sequel Pro QLGenerator */, 1798AB1C12676EA0000D946A /* Localize */, @@ -2766,11 +2695,25 @@ /* End PBXProject section */ /* Begin PBXReferenceProxy section */ - 586AA0CC14F1CE0C007F82BF /* SPMySQL.framework */ = { + 17E5955314F304000054EE08 /* QueryKit.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = QueryKit.framework; + remoteRef = 17E5955214F304000054EE08 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 17E596A214F307CE0054EE08 /* Tests.octest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = Tests.octest; + remoteRef = 17E596A114F307CE0054EE08 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 584D804315056AA700F24774 /* SPMySQL.framework */ = { isa = PBXReferenceProxy; fileType = wrapper.framework; path = SPMySQL.framework; - remoteRef = 586AA0CB14F1CE0C007F82BF /* PBXContainerItemProxy */; + remoteRef = 584D804215056AA700F24774 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXReferenceProxy section */ @@ -3022,16 +2965,6 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 17FC35A91413CFE700AC3602 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 17FC35C31413D14100AC3602 /* QKQuery.m in Sources */, - 17FC360C1413DAED00AC3602 /* QKQueryParameter.m in Sources */, - 17FC3627141411B800AC3602 /* QKQueryUtilities.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 380F4ED50FC0B50500B0BFD7 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3047,7 +2980,6 @@ 176059B813361D380098E162 /* SPDatabaseInfoTest.m in Sources */, 176059B913361D390098E162 /* SPTableCopyTest.m in Sources */, 176059BA13361D3A0098E162 /* SPDatabaseCopyTest.m in Sources */, - 17FC3634141415F100AC3602 /* QKSelectQueryTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3253,7 +3185,6 @@ 1713C740140D8AEF00CFD461 /* SPQueryDocumentsController.m in Sources */, 1713C75F140D8D5900CFD461 /* SPQueryConsoleDataSource.m in Sources */, 17902612141025BB005F677F /* SPQueryControllerInitializer.m in Sources */, - 586AA28D14F57E98007F82BF /* SPObjectAdditions.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3275,20 +3206,20 @@ target = 58B9096011C3A42B000826E5 /* xibLocalizationPostprocessor */; targetProxy = 1798AB401267731F000D946A /* PBXContainerItemProxy */; }; - 17FC36361414164000AC3602 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 17FC35AB1413CFE700AC3602 /* QueryKit */; - targetProxy = 17FC36351414164000AC3602 /* PBXContainerItemProxy */; - }; 5847571E120A1C6D0057631F /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 584754C1120A04560057631F /* Sequel Pro QLGenerator */; targetProxy = 5847571D120A1C6D0057631F /* PBXContainerItemProxy */; }; - 586AA0D114F1CE19007F82BF /* PBXTargetDependency */ = { + 584D804915056AB700F24774 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = SPMySQL.framework; - targetProxy = 586AA0D014F1CE19007F82BF /* PBXContainerItemProxy */; + targetProxy = 584D804815056AB700F24774 /* PBXContainerItemProxy */; + }; + 586AAB1014FAD3A2007F82BF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = QueryKit; + targetProxy = 586AAB0F14FAD3A2007F82BF /* PBXContainerItemProxy */; }; 58B907CD11BDA552000826E5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -3895,81 +3826,6 @@ }; name = Distribution; }; - 17FC35AE1413CFE800AC3602 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - 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 = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INFOPLIST_FILE = "Resources/Plists/QueryKit-Info.plist"; - INSTALL_PATH = "$(HOME)/Library/Frameworks"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - ); - PREBINDING = NO; - PRODUCT_NAME = QueryKit; - SDKROOT = macosx10.6; - }; - name = Debug; - }; - 17FC35AF1413CFE800AC3602 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - FRAMEWORK_VERSION = A; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INFOPLIST_FILE = "Resources/Plists/QueryKit-Info.plist"; - INSTALL_PATH = "$(HOME)/Library/Frameworks"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - ); - PREBINDING = NO; - PRODUCT_NAME = QueryKit; - SDKROOT = macosx10.6; - ZERO_LINK = NO; - }; - name = Release; - }; - 17FC35B01413CFE800AC3602 /* Distribution */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - FRAMEWORK_VERSION = A; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INFOPLIST_FILE = "Resources/Plists/QueryKit-Info.plist"; - INSTALL_PATH = "$(HOME)/Library/Frameworks"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - ); - PREBINDING = NO; - PRODUCT_NAME = QueryKit; - SDKROOT = macosx10.6; - }; - name = Distribution; - }; 380F4EDB0FC0B50600B0BFD7 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -4170,10 +4026,10 @@ GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_VALUE = YES; GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "${PROJECT_DIR}/Frameworks/SPMySQLFramework/**"; IBC_WARNINGS = YES; PREBINDING = NO; SDKROOT = macosx10.5; - USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/Frameworks/SPMySQLFramework/**"; VALID_ARCHS = "i386 ppc x86_64"; WARNING_CFLAGS = "-Wmost"; }; @@ -4188,6 +4044,7 @@ "\"$(SRCROOT)/Frameworks\"", "\"$(SRCROOT)\"", ); + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Source/Sequel-Pro.pch"; @@ -4432,6 +4289,7 @@ "\"$(SRCROOT)/Frameworks\"", "\"$(SRCROOT)\"", ); + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Source/Sequel-Pro.pch"; @@ -4487,6 +4345,7 @@ GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_VALUE = YES; GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "${PROJECT_DIR}/Frameworks/SPMySQLFramework/**"; IBC_FLATTEN_NIBS = NO; IBC_WARNINGS = YES; LEXFLAGS = ""; @@ -4497,7 +4356,6 @@ PREBINDING = NO; SDKROOT = macosx10.5; STRIP_INSTALLED_PRODUCT = NO; - USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/Frameworks/SPMySQLFramework/**"; VALID_ARCHS = "i386 ppc x86_64"; WARNING_CFLAGS = "-Wmost"; }; @@ -4545,10 +4403,10 @@ GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_VALUE = YES; GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "${PROJECT_DIR}/Frameworks/SPMySQLFramework/**"; IBC_WARNINGS = YES; PREBINDING = NO; SDKROOT = macosx10.5; - USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/Frameworks/SPMySQLFramework/**"; VALID_ARCHS = "i386 ppc x86_64"; WARNING_CFLAGS = "-Wmost"; }; @@ -4567,16 +4425,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 17FC35B11413CFE800AC3602 /* Build configuration list for PBXNativeTarget "QueryKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 17FC35AE1413CFE800AC3602 /* Debug */, - 17FC35AF1413CFE800AC3602 /* Release */, - 17FC35B01413CFE800AC3602 /* Distribution */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 380F4EDE0FC0B50600B0BFD7 /* Build configuration list for PBXNativeTarget "Unit Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( |