Game made by Evan Grzeda and Simon Weber
Full credits
here
The Cave
You: x/x HP, x ATK, x SPD, x DEF.
Enemy: x/x HP, x ATK, x SPD, x DEF.
You are fighting nothing.


I had done some meth on a previous occasion a couple weeks ago, and decided I just did not like not being in control of what I buy (I spent 90 bucks in one morning, all but 10 bucks of my party money). Tonight, I wasn't able to find some K, so I was in a bad mood, while my friends were tripping on acid and some meth, and our dealer-friend had been awake for 8 days already. I wasn't high, I was gunna bring down my friends' highs, so I figured what the hey, I'll buy a 20 sack (pretty fat, at least 200mg). I did about 4 bumps off a key immediately.
Immediately I started feeling better about the night. I was perkier, I was smiling, and I knew everything would be ok. At this point, our tweeker friend took the wheel. I have a convertible, so we drove with the top down, and I felt almost as if I could have jumped out of the car and started flying. I knew I wouldn't, and didn't try, but I still had the feeling.
We ended up at an apartment where about 5 other people were mostly smoking meth. I did another small line from my sack, and was giving another bump to smoke.  Nothing exciting happened, and we ended up going back out after I took another fat bump. After that one, I became intrigued with staring at my eyes to see if they would dilate immediately after the bump. They seemed to flicker back and fourth, but didn't get too big.
I began to realize this was a better quality meth than what I had previously done. I later found out it's called 'pink champagne', but it looked all white to me, our friend said it has a brownish tint too. The most notable affect was NO FIENDING FOR MORE. I could take some, and stop, and not want any more. I was very talkative at this point, and getting into a great mood now. I was constantly telling my friends how great my life was now and how great the meth I got from this guy is, and how much I appreciated it.
We went to Denny's, and after drinking some OJ, I began to feel really tired, knew I needed another bump. I also felt hungry, but I knew I couldn't eat, which persisted long afterward. I couldn't wait anymore, and went into the bathroom. I came back out with a smile on my face. Now we began to head for a great park, and I killed off my bag with two more bumps on the way there.
We found a great field with lots of wildflowers, and while walking through there, we were each treated to another bump. The walk was very pleasant, but also very humid. We all sweated profusely. We went to a playground, and I got another bump, also ended up being my last. I played for awhile with my new burst of energy, then sat on the swings with my friends. We all sat there for what seemed forever. As I was coming down off this bump, I just felt a general well-being. I didn't need anymore meth. I wasn't unhappy that I didn't have more. My friends confirmed this themselves. It was perfect. I even felt like going home and giving my mom a big hug, as she's been very worried about me lately.
We spent another 5 or 6 hours cruising around the beach and just driving around. I got drowsy in the back seat, and had a few 30 second 'tweeker naps' which made me feel more energetic. I would constantly stare at things and not a thought would go through my head for moments, a common occurence during and after use for me that night. I really felt happy, and I loved the people I was with, as if there was X in that meth, which I doubt. I talked to everyone constantly, whether they were listening or not, sometimes simply mumbling. But the best part was I wasn't fiending for more meth. We all agreed it was a much better quality, cleaner, safer.
At one point I ended up in a store talking to myself about finding the cheapest bottle of water until I realized the lady beside me must think I'm crazy. On the way driving everyone home, I began to pass out, not a fun thing, but I never got into real trouble. Talking or saying the ABC's to myself helps me keep awake. I also had a tendency to watch the road and something just would not seem right. Cars might seem really far, and I had a tendency to pay attention to things other than the road.
While I write this now, I'm seeing mild visual distortions. Blurryness, slight double vision, sparkles in my peripherals. It's been only 29 hours since I last had real sleep, and I had had quite a bit. I don't feel like sleeping, although my body is tired. I haven't had any meth for the last 7 hours. I don't feel like I need any more, but I'll probably do more in a couple weeks or so.
Meth is a very dangerous substance. I had given up on it until this night, because it's so addictive. But never during the night did I feel like I needed to have more meth just to have more. When I was done, I was done, I wasn't disappointed. The come-down was very mellow and I had a feeling of well-being, like everything was alright in the world. Rarely did I feel tired, and it always eventually went away, leaving me pretty awake. (I've also felt this with other meth, feeling tired then having it disappear as my body perhaps figures out it's not getting any more bumps) I would be VERY careful with anything but this kind -- I always try to get a sample bump, give myself 5-10 minutes to see if I really want more, and if I don't, I don't buy any of that meth.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


The Daemon Component contains a set of Java and native code, including:
This code was originally developped as part of the Tomcat project.
The Daemon component is dependent upon the following external components for development and use:
Current Release: Daemon is yet to be released. We hope it will be RSN.
The following individuals are the primary developers and maintainers of this component. Developers who plan to use Daemon in their own projects are encouraged to collaborate on the future development of this component to ensure that it continues to meet a variety of needs.


Leveraging Vision Reconstruction Pipelines
for Satellite Imagery
Kai Zhang, Noah Snavely, Jin Sun
Cornell Tech, Cornell University
Reconstructing 3D geometry from satellite imagery is an important topic of research. However, disparities exist between how this 3D reconstruction problem is handled in the remote sensing context and how multi-view reconstruction pipelines have been developed in the computer vision community. In this project, we explore whether state-of-the-art reconstruction pipelines from the vision community can be applied to the satellite imagery. Along the way, we address several challenges adapting vision-based structure from motion and multi-view stereo methods. We show that vision pipelines can offer competitive speed and accuracy in the satellite context.
Example Result
Input Images
View all the 47 input images [link]. The resolution of these images is around 30 cm per pixel.
Reconstructed Point Cloud
Metric Numbers
Median height error is 0.315 meters; completeness score is 72.5%. (completeness score is defined as the percentage of non-empty ground-truth height map cells where the reconstructed height value exists and is within 1 meter error from the ground-truth value. )
Our method makes possible transferring working 3D reconstruction solutions from computer vision community to satellite images. While being competitive in accuracy, it also embraces increased scalability and efficiency. In the long run, our goal is to bridge the gap on how 3D reconstruction is tackled between the computer vision community and the remote sensing community.
Paper
@inproceedings{VisSat-2019,
title={Leveraging Vision Pipelines for Satellite Imagery},
author={Zhang, Kai and Snavely, Noah and Sun, Jin},
booktitle={IEEE International Conference on Computer Vision Workshops},
year={2019}
}
Code
Coming soon...
Data
Our method converts the satellite imagery data to more conventional and accessible format:
- HDR images are tonemapped to LDR.
- RPC cameras are approximated with perspective cameras, which then are bundle-adjusted by our pipline.
You can download our data from here. If you perform Multi-view Stereo on these images and cameras, the reconstructed point cloud will be in the local ENU coordinate system. We provide this accompanying toolset to convert the points' coordinates to the global coordinate system, i.e., (UTM east, UTM north, altitude), and report its accuracy by comparing to the ground-truth.
Our data is based upon the public remote sensing dataset. If you use our transformed data in your work, please include the following citations:
- @inproceedings{VisSat-2019,
title={Leveraging Vision Pipelines for Satellite Imagery},
author={Zhang, Kai and Snavely, Noah and Sun, Jin},
booktitle={IEEE International Conference on Computer Vision Workshops},
year={2019}
} - @inproceedings{bosch2016multiple,
title={A multiple view stereo benchmark for satellite imagery},
author={Bosch, Marc and Kurtz, Zachary and Hagstrom, Shea and Brown, Myron},
booktitle={IEEE Applied Imagery Pattern Recognition Workshops},
year={2016}
}
Acknowledgements
The research is based upon work supported by the Office of the Director of National Intelligence (ODNI), Intelligence Advanced Research Projects Activity (IARPA), via DOI/IBC Contract Number D17PC00287. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of the ODNI, IARPA, or the U.S. Government. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation thereon.


Polyglot developer, trainer, and writer. Writing the The Guide to Real World TDD. Director of Training Services at 8th Light. Follow me on twitter.
New? Start Here!
{{page.title}}
{{ content }} {% include call_to_action.html %}If you liked this...
-
{% for relatedPost in site.related_posts %}
- {{ relatedPost.title }} {% endfor %}


Meteora.Autocomplete
Put the first two or three letters of your country of origin, in English.
Country ID
submit


About this project:
For many young men, the traditional rite of passage to manhood is a profoundly spiritual experience. But scores of young men suffer and die during initiation, at the hands of unscrupulous traditional surgeons. Yet more initiates at illegal initiation schools are maimed for life.
City Press, Code for Africa and Open Data Durban have devised a way in which initiates and their families can check whether the traditional surgeons they have chosen are registered with the Eastern Cape Department of Health.
It is our hope that you use this tool to choose a skilled, registered traditional surgeon, and experience the rite of passage as the enriching cultural experience it is meant to be.


{% load static %}
The place to visit when wondering what to watch on Netflix. This website is under low maintenance Email me for bugs & features<EMAIL_ADDRESS>😊
Top rated and Most popular movies from IMDB that are available on Netflix to watch. {# #} {# Please donate to keep this project alive


My Portfolio
About
Education
Gallery
Contact
MELEKEOWEI OYINBRAKEMI PAUL
About
I am currently undergoing training to become a web developer
I was born on the 14
TH
of April 2004
Projects
The Website you are visiting was designed and written by myself(MELEKEOWEI OYINBRAKEMI PAUL)and it entails some little details about myself.
This is an upcoming project to display my portfolio.
Education
School/Organisation
Position
Year
Percentage
Secondary school
Class 10
Year 2020
96%
Your Further School
12
Year 2020
92.6%
Your Present Learning Centre
Software Development
2024
To Be Calculated
Gallery


4
My tournament
My tournament
Easter Tournament
Open
IN PROGRESS
Your next match
Friday:
June 16 -08:00
VS
Alan Hudson
RED
Alan Hudson
BLUE
Tournament Brackets
Participants


Enrollment Form
Please fill out the following form with your relevent information.
those marked with
*
are required!
Your Details
Course Details
Your Next of Kin Details
Account Details
Enroll!


My 2 favorite values are community and social because so you don't feel alone. They're 7 billion people out there don't hide, make friends and make a difference in the world. In the future my dream is work at big tech gaming companies such as Ubisoft and to own a Tesla P100D. I hope from this couse that I can build great games and have thousands of people play it.


Using an ng2 directive in ng1
@Component({
selector: 'my-settings',
properties: ['user'],
events: ['logout']
})
@View({
templateUrl: '...'
})
class MySettings {
user: User;
logout = new EventEmitter();
}
myAppModule
.directive('mySettings', ng2upgrade.ng1from2(MySettings));
Using an ng1 directive in ng2
myAppModule.directive('zippy', ...);
var Ng2Zippy = ng2upgrade.ng2from1(myAppModule, 'ng2-zippy');
@Component({
selector: 'some-component'
})
@View({
template: '',
directives: [Ng2Zippy]
})
class SomeComponent {
myTytle = "Some text";
onClose() {
}
}
## $watch ...
- [Angular 1 and Angular 2 integration: the path to seamless upgrade](http://angularjs.blogspot.ca/2015/08/angular-1-and-angular-2-coexistence.html)
- [Angular 1 to Angular 2 Upgrade Strategy](https://docs.google.com/document/d/1xvBZoFuNq9hsgRhPPZOJC-Z48AHEbIBPlOCBTSD8m0Y/edit#)
- [ngUpgrade Repository](https://github.com/angular/ngUpgrade)


#include <stddlg.h>
Inheritance diagram for TDirCollection::
Public Methods | |
| TDirCollection (ccIndex aLimit, ccIndex aDelta) | |
| TDirEntry* | at (ccIndex index) |
| virtual ccIndex | indexOf (TDirEntry *item) |
| void | remove (TDirEntry *item) |
| void | free (TDirEntry *item) |
| void | atInsert (ccIndex index, TDirEntry *item) |
| void | atPut (ccIndex index, TDirEntry *item) |
| virtual ccIndex | insert (TDirEntry *item) |
| TDirEntry* | firstThat (ccTestFunc Test, void *arg) |
| TDirEntry* | lastThat (ccTestFunc Test, void *arg) |
Static Public Methods | |
| TStreamable* | build () |
Static Public Attributes | |
| const char* const | name |
Protected Methods | |
| TDirCollection (StreamableInit) |
TDirCollection is a streamable class, inheriting TStreamable from its base class TCollection.
Definition at line 995 of file stddlg.h.
|
|
Calls the base TCollection constructor to create a directory collection with the given limit `aLimit' and delta `aDelta'. |
|
|
Undocumented. |
|
|
Returns a pointer to the TDirEntry object indexed by `index' in this directory collection.
Reimplemented from TNSCollection. |
|
|
Inserts the given `item' into the collection at the given `index' and moves the following items down one position. The collection will be expanded by delta if the insertion causes the limit to be exceeded.
|
|
|
Replaces the item at `index' with the given `item'.
|
|
|
Called to create an object in certain stream-reading situations. |
|
|
This iterator returns a pointer to the first TDirEntry object in the collection for which the `Test' function returns True. Reimplemented from TNSCollection. |
|
|
Removes (deletes) the given `item' from the collection and frees the space in the collection.
|
|
|
Returns the index of the given `item' in this directory collection.
|
|
|
Inserts the `item' into the collection, and adjust the other indexes if necessary. By default, insertions are made at the end of the collection. The index of the inserted item is returned.
|
|
|
This iterator scans the collection from the last TDirEntry object to first. It returns a pointer to the first (that is, the nearest to the end) item in the collection for which the `Test' function returns True. Reimplemented from TNSCollection. |
|
|
Removes (deletes) the given `item' from this collection. The space in the collection is not freed.
|
|
|
Undocumented. Reimplemented from TCollection. |


|
Perl Weekly
Issue #17 - 2011-11-21 - Perl Weekly reaches 2000 subscribers
latest | archive | by Gabor Szabo
|
|
Hi there,
I am back from London and started to organize the Perl Workshop in Israel. See link below.
We also reached and passed 2000 subscribers in the Perl Weekly. Thank you for your trust!
Now to the posts:
|
|
|
Headlines
|
|
|
|
|
Articles
|
What is the Marpa algorithm?
We already saw a few articles by Jeffrey Kegler about his Marpa module. In this article he explains the theory and the algorithm behind it.
|
|
Promoting Perl's Features versus Benefits
chromatic shows a couple of examples to explain what the listener will benefit by using Perl. It's an art though. Sometimes you need to emphasize the features and show the benefits in other, more subtle ways.
|
|
What's actually installed in that perl library?
Tim Bunce (you know, the guy who wrote DBI), describes his solution when his company wanted to move from a very old Perl to a new one. The primary problem being the fact that they did not have proper configuration management earlier. Is that familiar to you?
|
|
|
|
Discussion
|
Dist::Zilla, Pod::Weaver and bin
Flavio Poletti fights Dist::Zilla and Pod::Weaver in public. And wins! There is a certain value when someone describes the path to the solution and not only the solution. That helps people accept, that they are not expected to come up with a solution out of the blue. It also helps people learning the fine art of problem solving.
|
|
Slides
|
|
|
LPW2011 Talk Slides
Paul Evans (LeoNerd) links to his 'A Protocol for Protocols' and 'Tickit' talk slides.
|
|
Screencasts
|
|
|
Testing
|
Time spent waiting for tests you know will pass is time wasted
Here, the anti-thesis. Everyone talks about the importance of testing and the importance of running the tests during module installation. Then here comes Fred Moyer (Phred) and explains why is that a waste of time. The comments have a solution. Binary distributions. What do you say?
|
|
Test::DatabaseRow 2
Test::DatabaseRow has been part of my testing training for many years now but I always had a bit of a strange feeling as it only handled one single row. Now Mark Fowler has refactored and upgraded the module and among other things it can now test multiple rows. Here he explains some of his decisions.
|
|
Perl 6
|
Rakudo: this week's release, and the next Rakudo Star
A few days ago version #46 of Rakudo came out and in this article Jonathan Worthington describes what is in the new version: 'Big Integer Support', 'Protoregexes with LTM', 'CATCH improvements', 'Improved MAIN argument parsing', '6model REPR API 2' just to copy the titles. Detailed explanation in the blog post.
|
|
Perl Tutorials
|
How to teach 'Modern' Perl?
People have strong opinion on what Modern Perl means. Unfortunatelly those things don't always work out of the box and sometimes it isn't a good thing to teach those practices at all. At least not as the first experience in tha language. In this article I was trying to discuss some of the issues I see.
|
|
Other
|
|
|
Padre 0.92, the release!
Peter Lavender, the release manager of Padre wrote about the new version. Installable from CPAN. This is the first version that requires Wx::Scintilla. Padre also has real-time VCS built in now.
|
|
Stackoverflow perl report
Miguel Prz (niceperl) continues with his new tradition and lists the 10 most popular Perl related questions on StackOverflow. I hope people in the Perl community take notice and start following the Perl tag on SO.
|
|
|
|
Events
|
|
|
|
|
|
|
You know, you could get the Perl Weekly right in your mailbox. Every Week. Free of charge!
|


Survey Form
Let me know how I can improve my Web Development Learning.
Name:
Email:
Age:
Which web development speciality should I choose?
Front-end
Back-end
Sysadmin
Full-stack
Which skills should I have?:
HTML
CSS
CSS Frameworks
Javascript
Responsive Web Design
Version Control
Browser Development Tools
Testing
Programming Languages
Which programming language should I learn?
C++
C#
Java
Python
Any comments or suggestions?
Send


Starting from version 9 Oblique is displayed with its own icons that have been introduced with version 6.1. Oblique icons are meant to be
used with Angular Material's mat-icon
component. As registering custom icons for the mat-icon
component is not
really straightforward, Oblique provides the ObIconService
to greatly simplify this process. Of course, Angular's
MatIconRegistry
can still be used directly, see
MatIconModule for more information.
For performance reasons, Oblique packs all icons in a single file called an icon set. It then extracts the SVGs and inlines them directly in the code on build time.
Oblique's icons are opt-in, meaning ObIconModule.forRoot()
has to be explicitly imported in the applications' root module. To
properly handle the icon's vertical alignment with text, the mat-icon
component needs the ob-icon-text
class.
The forRoot
method is mandatory, as it will take care of the icons registration. It accepts an optional configuration that
allows the registration of additional icon sets as well as the default class to be applied to font icons. Per default, the Oblique's icon
set is loaded.
First, the ObIconModule
has to be imported in the root module, usually app.module.ts
@NgModule({ imports: [ ... ObIconModule.forRoot() ... ], ... }
Then the mat-icon
component can be used with the svgIcon
input.
<mat-icon svgIcon="calendar"></mat-icon>
Simply provide the forRoot
method with the needed class.
@NgModule({ imports: [ ... ObIconModule.forRoot({fontClass: 'fas'}) ... ], ... }
An array of serialized icon sets (see below) can be passed on to the ObIconModule
's configuration. Each icon of the icon
sets must have an unique id
property. The module's forRoot
method accepts a config
parameter
whose additionalIcons
property serves that purpose.
const iconSet = ['<svg><defs><svg id="my-icon">...</svg>...</defs></svg>']; @NgModule({ imports: [ ... ObIconModule.forRoot({additionalIcons: iconSet}) ... ], ... }
The ObIconService
provides 4 handy methods to register icons on the fly. Please note that two of them will trigger one or
more HTTP requests.
registerIconSetsAsync
registerIconsAsync
registerIconSets
registerIconsAsync
const iconSet = require('!!raw-loader!path/to/iconSet.svg').default; // alternatively, the constant can hold the serialized icon set directly @NgModule({ ... } export class AppModule { constructor(icon: ObIconService) { icon.registerIconSetsAsync('assets/my-icon-set-1.svg', 'assets/my-icon-set-2.svg'); icon.registerIconsAsync({name:'my-icon-1', url: 'assets/my-icon-1.svg'}, {name:'my-icon-2', url: 'assets/my-icon-2.svg'}); icon.registerIconSets('<svg><defs>...</defs></svg>); icon.registerIcons({name: 'my-icon', svg:'<svg>...</svg>}); } }
An icon set is a single SVG file that wraps multiple SVG icons identified by an id
. Individual SVGs are wrapped in a
defs
tag and can be rendered by passing their id
to the svgIcon
input.
<svg> <defs> <svg id="icon-1">some svg paths</svg> <svg id="icon-2">some svg paths</svg> <svg id="icon-3">some svg paths</svg> </defs> </svg>
An icon set can be generated from single SVG files through the following node script:
const fs = require('fs'), path = require('path'); const iconsPath = path.join('path', 'to', 'icons', 'folder'); const iconSetPath = path.join('path', 'to', 'iconSet.svg'); fs.writeFileSync(iconSetPath, '<svg>\n\t<defs>\n'); fs.readdirSync(iconsPath).forEach(file => { const id = file.toLowerCase().replace('.svg', ''); const icon = fs.readFileSync(path.join(iconsPath, file)).toString().replace('<svg ', `<svg id="${id}" `); fs.appendFileSync(iconSetPath, `\t\t${icon}`); }); fs.appendFileSync(iconSetPath, '\t</defs>\n</svg>');
Yes it does. In case of name conflict, icons registered later do override the previous ones. This allows effectively to override specific icons by simply re-register them. When there are multiple concurrent asynchronous requests, there's no telling which one comes first. In that case, async function should be avoided.
Although the icon feature is built on top of Angular, it can still be used without it. First, the oblique-icons.css
file
needs to be loaded, please note that this file weights 230kB, therefore it should only be used after careful considerations. Then the
chosen icon can be displayed by setting both the ob-icon
and ob-<icon-name>
classes. This will embed the
corresponding Oblique SVG in a pseudo element. Unfortunately, as the icon is rendered as an image, its color cannot be changed.
This is fine with typical decorative icons that do not convey meaning. Purely cosmetic icons should not be read out loud.
This is also the correct configuration for interactive icons that triggers an action. In that case, the icon should be the child of a
button or a link that is responsible to provide an accessible text either through a meaningful label, an aria-label
or
aria-labelledby
attribute.
On the other hand, indicator icons, where the icon communicates some status without a labeling text should be made accessible. The
easiest way is to simply add
Some meaningful label
as an adjacent sibling to the icon.


THE EFFECTS CF REINFORCEMENT FRCOCEDURES CN NEGATIVE
BEHAVICRS IN DELINQUINT GIRLS
By Joseph Pavlot B. S., Duquesne University, 1954 M. Ae, Duquesne University, 1964 M. Ed., University of Fittsbureh, 1567
Submitted to the Graduate Faculty in the School of Education in partial fulfillment of the requirements for the degree of
Doctor of Philosophy
University of Pittsburch 1971


| 1 | /* | |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | * or more contributor license agreements. See the NOTICE file | |
| 4 | * distributed with this work for additional information | |
| 5 | * regarding copyright ownership. The ASF licenses this file | |
| 6 | * to you under the Apache License, Version 2.0 (the | |
| 7 | * "License"); you may not use this file except in compliance | |
| 8 | * with the License. You may obtain a copy of the License at | |
| 9 | * | |
| 10 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | * | |
| 12 | * Unless required by applicable law or agreed to in writing, | |
| 13 | * software distributed under the License is distributed on an | |
| 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | * KIND, either express or implied. See the License for the | |
| 16 | * specific language governing permissions and limitations | |
| 17 | * under the License. | |
| 18 | */ | |
| 19 | package org.apache.empire.db.sqlite; | |
| 20 | ||
| 21 | import java.sql.Connection; | |
| 22 | import java.sql.PreparedStatement; | |
| 23 | import java.sql.ResultSet; | |
| 24 | import java.sql.SQLException; | |
| 25 | import java.sql.Statement; | |
| 26 | import java.text.DateFormat; | |
| 27 | import java.text.ParseException; | |
| 28 | import java.text.SimpleDateFormat; | |
| 29 | import java.util.Date; | |
| 30 | import java.util.GregorianCalendar; | |
| 31 | import java.util.List; | |
| 32 | ||
| 33 | import org.apache.empire.data.DataType; | |
| 34 | import org.apache.empire.db.DBCmdType; | |
| 35 | import org.apache.empire.db.DBColumnExpr; | |
| 36 | import org.apache.empire.db.DBCommand; | |
| 37 | import org.apache.empire.db.DBDDLGenerator; | |
| 38 | import org.apache.empire.db.DBDatabase; | |
| 39 | import org.apache.empire.db.DBDatabaseDriver; | |
| 40 | import org.apache.empire.db.DBDriverFeature; | |
| 41 | import org.apache.empire.db.DBJoinType; | |
| 42 | import org.apache.empire.db.DBObject; | |
| 43 | import org.apache.empire.db.DBSQLScript; | |
| 44 | import org.apache.empire.db.DBTableColumn; | |
| 45 | import org.apache.empire.db.expr.join.DBColumnJoinExpr; | |
| 46 | import org.apache.empire.db.expr.join.DBJoinExpr; | |
| 47 | import org.apache.empire.exceptions.NotImplementedException; | |
| 48 | import org.apache.empire.exceptions.NotSupportedException; | |
| 49 | import org.apache.empire.exceptions.UnexpectedReturnValueException; | |
| 50 | import org.slf4j.Logger; | |
| 51 | import org.slf4j.LoggerFactory; | |
| 52 | ||
| 53 | /** | |
| 54 | * This class provides support for the SQLite database system.<br> | |
| 55 | * | |
| 56 | */ | |
| 57 | public class DBDatabaseDriverSQLite extends DBDatabaseDriver | |
| 58 | { | |
| 59 | private final static long serialVersionUID = 1L; | |
| 60 | private static final Logger log = LoggerFactory.getLogger(DBDatabaseDriverSQLite.class); | |
| 61 | | |
| 62 | /** | |
| 63 | * Defines the SQLite command type. | |
| 64 | */ | |
| 65 | public static class DBCommandSQLite extends DBCommand | |
| 66 | { | |
| 67 | private static final long serialVersionUID = 1L; | |
| 68 | | |
| 69 | /** | |
| 70 | * @param db | |
| 71 | * the database | |
| 72 | * @see org.apache.empire.db.DBCommand | |
| 73 | */ | |
| 74 | public DBCommandSQLite(DBDatabase db) | |
| 75 | { | |
| 76 | super(db); | |
| 77 | } | |
| 78 | | |
| 79 | @Override | |
| 80 | public void join(DBJoinExpr join) | |
| 81 | { | |
| 82 | // http://www.sqlite.org/omitted.html | |
| 83 |
1
1. join : negated conditional → NO_COVERAGE |
if (join.getType() != DBJoinType.LEFT) { |
| 84 | throw new NotImplementedException(join.getType(), join.getLeftTable().getName() + " join " + join.getRightTable().getName()); | |
| 85 | } | |
| 86 |
1
1. join : removed call to org/apache/empire/db/DBCommand::join → NO_COVERAGE |
super.join(join); |
| 87 | } | |
| 88 | | |
| 89 | @Override | |
| 90 | public void addJoins(List<DBJoinExpr> joinExprList) | |
| 91 | { | |
| 92 | for (DBJoinExpr joinExpr : joinExprList) | |
| 93 | { | |
| 94 |
1
1. addJoins : negated conditional → NO_COVERAGE |
if ((joinExpr instanceof DBColumnJoinExpr) && |
| 95 |
1
1. addJoins : negated conditional → NO_COVERAGE |
(joinExpr.getType() != DBJoinType.LEFT)) { |
| 96 | DBColumnJoinExpr join = (DBColumnJoinExpr)joinExpr; | |
| 97 | throw new NotImplementedException(joinExpr.getType(), join.getLeft() + " join " + join.getRight()); | |
| 98 | } | |
| 99 | } | |
| 100 | /* | |
| 101 | * Iterator<DBJoinExpr> iterator = joinExprList.iterator(); for | |
| 102 | * (DBJoinExpr joinExpr = null; iterator.hasNext(); joinExpr = | |
| 103 | * iterator.next()) { if(joinExpr.getType() != DBJoinType.LEFT) { | |
| 104 | * iterator.remove(); } } | |
| 105 | */ | |
| 106 |
1
1. addJoins : removed call to org/apache/empire/db/DBCommand::addJoins → NO_COVERAGE |
super.addJoins(joinExprList); |
| 107 | | |
| 108 | } | |
| 109 | | |
| 110 | } | |
| 111 | | |
| 112 | private DBDDLGenerator<?> ddlGenerator = null; // lazy creation | |
| 113 | | |
| 114 | /** | |
| 115 | * Constructor for the SQLite database driver. | |
| 116 | */ | |
| 117 | public DBDatabaseDriverSQLite() | |
| 118 | { | |
| 119 |
1
1. <init> : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::setReservedKeywords → SURVIVED |
setReservedKeywords(); |
| 120 | } | |
| 121 | | |
| 122 | private void addReservedKeyWord(final String keyWord) | |
| 123 | { | |
| 124 | boolean added = reservedSQLKeywords.add(keyWord.toLowerCase()); | |
| 125 |
1
1. addReservedKeyWord : negated conditional → SURVIVED |
if (!added) |
| 126 | { | |
| 127 | log.debug("Existing keyWord added: " + keyWord); | |
| 128 | } | |
| 129 | } | |
| 130 | | |
| 131 | private void setReservedKeywords() | |
| 132 | { | |
| 133 | // list of reserved keywords | |
| 134 | // http://www.sqlite.org/lang_keywords.html | |
| 135 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ABORT".toLowerCase()); |
| 136 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ACTION".toLowerCase()); |
| 137 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ADD".toLowerCase()); |
| 138 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("AFTER".toLowerCase()); |
| 139 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ALL".toLowerCase()); |
| 140 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ALTER".toLowerCase()); |
| 141 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ANALYZE".toLowerCase()); |
| 142 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("AND".toLowerCase()); |
| 143 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("AS".toLowerCase()); |
| 144 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ASC".toLowerCase()); |
| 145 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ATTACH".toLowerCase()); |
| 146 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("AUTOINCREMENT".toLowerCase()); |
| 147 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("BEFORE".toLowerCase()); |
| 148 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("BEGIN".toLowerCase()); |
| 149 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("BETWEEN".toLowerCase()); |
| 150 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("BY".toLowerCase()); |
| 151 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("CASCADE".toLowerCase()); |
| 152 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("CASE".toLowerCase()); |
| 153 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("CAST".toLowerCase()); |
| 154 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("CHECK".toLowerCase()); |
| 155 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("COLLATE".toLowerCase()); |
| 156 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("COLUMN".toLowerCase()); |
| 157 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("COMMIT".toLowerCase()); |
| 158 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("CONFLICT".toLowerCase()); |
| 159 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("CONSTRAINT".toLowerCase()); |
| 160 | | |
| 161 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("CREATE".toLowerCase()); |
| 162 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("CROSS".toLowerCase()); |
| 163 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("CURRENT_DATE".toLowerCase()); |
| 164 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("CURRENT_TIME".toLowerCase()); |
| 165 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("CURRENT_DATETIME".toLowerCase()); |
| 166 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("DATABASE".toLowerCase()); |
| 167 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("DEFAULT".toLowerCase()); |
| 168 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("DEFERRABLE".toLowerCase()); |
| 169 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("DEFERRED".toLowerCase()); |
| 170 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("DELETE".toLowerCase()); |
| 171 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("DESC".toLowerCase()); |
| 172 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("DETACH".toLowerCase()); |
| 173 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("DISTINCT".toLowerCase()); |
| 174 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("DROP".toLowerCase()); |
| 175 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("EACH".toLowerCase()); |
| 176 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ELSE".toLowerCase()); |
| 177 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("END".toLowerCase()); |
| 178 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ESCAPE".toLowerCase()); |
| 179 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("EXCEPT".toLowerCase()); |
| 180 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("EXCLUSIVE".toLowerCase()); |
| 181 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("EXISTS".toLowerCase()); |
| 182 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("EXPLAIN".toLowerCase()); |
| 183 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("FAIL".toLowerCase()); |
| 184 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("FOR".toLowerCase()); |
| 185 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("FOREIGN".toLowerCase()); |
| 186 | | |
| 187 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("FROM".toLowerCase()); |
| 188 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("FULL".toLowerCase()); |
| 189 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("GLOB".toLowerCase()); |
| 190 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("GROUP".toLowerCase()); |
| 191 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("HAVING".toLowerCase()); |
| 192 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("IF".toLowerCase()); |
| 193 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("IGNORE".toLowerCase()); |
| 194 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("IMMEDIATE".toLowerCase()); |
| 195 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("IN".toLowerCase()); |
| 196 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("INDEX".toLowerCase()); |
| 197 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("INDEXED".toLowerCase()); |
| 198 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("INITIALLY".toLowerCase()); |
| 199 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("INNER".toLowerCase()); |
| 200 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("INSERT".toLowerCase()); |
| 201 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("INSTEAD".toLowerCase()); |
| 202 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("INTERSECT".toLowerCase()); |
| 203 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("INTO".toLowerCase()); |
| 204 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("IS".toLowerCase()); |
| 205 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ISNULL".toLowerCase()); |
| 206 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("JOIN".toLowerCase()); |
| 207 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("KEY".toLowerCase()); |
| 208 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("LEFT".toLowerCase()); |
| 209 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("LIKE".toLowerCase()); |
| 210 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("LIMIT".toLowerCase()); |
| 211 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("MATCH".toLowerCase()); |
| 212 | | |
| 213 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("NATURAL".toLowerCase()); |
| 214 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("NO".toLowerCase()); |
| 215 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("NOT".toLowerCase()); |
| 216 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("NOTNULL".toLowerCase()); |
| 217 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("NULL".toLowerCase()); |
| 218 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("OF".toLowerCase()); |
| 219 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("OFFSET".toLowerCase()); |
| 220 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ON".toLowerCase()); |
| 221 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("OR".toLowerCase()); |
| 222 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ORDER".toLowerCase()); |
| 223 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("OUTER".toLowerCase()); |
| 224 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("PLAN".toLowerCase()); |
| 225 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("PRAGMA".toLowerCase()); |
| 226 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("PRIMARY".toLowerCase()); |
| 227 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("QUERY".toLowerCase()); |
| 228 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("RAISE".toLowerCase()); |
| 229 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("REFERENCES".toLowerCase()); |
| 230 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("REGEXP".toLowerCase()); |
| 231 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("REINDEX".toLowerCase()); |
| 232 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("RELEASE".toLowerCase()); |
| 233 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("RENAME".toLowerCase()); |
| 234 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("REPLACE".toLowerCase()); |
| 235 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("RESTRICT".toLowerCase()); |
| 236 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("RIGHT".toLowerCase()); |
| 237 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ROLLBACK".toLowerCase()); |
| 238 | | |
| 239 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("ROW".toLowerCase()); |
| 240 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("SAVEPOINT".toLowerCase()); |
| 241 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("SELECT".toLowerCase()); |
| 242 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("SET".toLowerCase()); |
| 243 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("TABLE".toLowerCase()); |
| 244 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("TEMP".toLowerCase()); |
| 245 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("TEMPORARY".toLowerCase()); |
| 246 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("THEN".toLowerCase()); |
| 247 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("TO".toLowerCase()); |
| 248 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("TRANSACTION".toLowerCase()); |
| 249 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("TRIGGER".toLowerCase()); |
| 250 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("UNION".toLowerCase()); |
| 251 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("UNIQUE".toLowerCase()); |
| 252 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("UPDATE".toLowerCase()); |
| 253 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("USING".toLowerCase()); |
| 254 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("VACUUM".toLowerCase()); |
| 255 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("VALUES".toLowerCase()); |
| 256 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("VIEW".toLowerCase()); |
| 257 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("VIRTUAL".toLowerCase()); |
| 258 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("WHEN".toLowerCase()); |
| 259 |
1
1. setReservedKeywords : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::addReservedKeyWord → SURVIVED |
addReservedKeyWord("WHERE".toLowerCase()); |
| 260 | } | |
| 261 | | |
| 262 | /** | |
| 263 | * Creates a new SQLite command object. | |
| 264 | * | |
| 265 | * @return the new DBCommandSQLite object | |
| 266 | */ | |
| 267 | @Override | |
| 268 | public DBCommand createCommand(DBDatabase db) | |
| 269 | { | |
| 270 |
1
1. createCommand : negated conditional → KILLED |
if (db == null) |
| 271 | return null; | |
| 272 | // create command object | |
| 273 |
1
1. createCommand : replaced return value with null for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::createCommand → KILLED |
return new DBCommandSQLite(db); |
| 274 | } | |
| 275 | | |
| 276 | /** | |
| 277 | * Returns whether or not a particular feature is supported by this driver | |
| 278 | * | |
| 279 | * @param type | |
| 280 | * type of requested feature. @see DBDriverFeature | |
| 281 | * @return true if the features is supported or false otherwise | |
| 282 | */ | |
| 283 | @Override | |
| 284 | public boolean isSupported(DBDriverFeature type) | |
| 285 | { | |
| 286 | switch (type) | |
| 287 | { // return support info | |
| 288 | case QUERY_LIMIT_ROWS: | |
| 289 |
1
1. isSupported : replaced boolean return with false for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::isSupported → NO_COVERAGE |
return true; |
| 290 | case QUERY_SKIP_ROWS: | |
| 291 |
1
1. isSupported : replaced boolean return with false for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::isSupported → NO_COVERAGE |
return true; |
| 292 | default: | |
| 293 | // All other features are not supported by default | |
| 294 |
1
1. isSupported : replaced boolean return with true for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::isSupported → KILLED |
return false; |
| 295 | } | |
| 296 | } | |
| 297 | | |
| 298 | /** | |
| 299 | * Gets an sql phrase template for this database system.<br> | |
| 300 | * | |
| 301 | * @see DBDatabaseDriver#getSQLPhrase(int) | |
| 302 | * @return the phrase template | |
| 303 | */ | |
| 304 | @Override | |
| 305 | public String getSQLPhrase(int phrase) | |
| 306 | { | |
| 307 | switch (phrase) | |
| 308 | { | |
| 309 | ||
| 310 | // sql-phrases | |
| 311 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_NULL_VALUE: return "null"; |
| 312 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_PARAMETER: return " ? "; |
| 313 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → KILLED |
case SQL_RENAME_TABLE: return " "; |
| 314 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_RENAME_COLUMN: return " AS "; |
| 315 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_DATABASE_LINK: return "@"; |
| 316 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_QUOTES_OPEN: return "`"; |
| 317 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_QUOTES_CLOSE: return "`"; |
| 318 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_CONCAT_EXPR: return "concat(?, {0})"; |
| 319 | // data types | |
| 320 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_BOOLEAN_TRUE: return "1"; |
| 321 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → KILLED |
case SQL_BOOLEAN_FALSE: return "0"; |
| 322 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_CURRENT_DATE: return "SELECT date('now','localtime');"; |
| 323 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_DATE_PATTERN: return "yyyy-MM-dd"; |
| 324 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_DATE_TEMPLATE: return "'{0}'"; |
| 325 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → KILLED |
case SQL_DATETIME_PATTERN: return "yyyy-MM-dd hh:mm:ss.sss"; |
| 326 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_DATETIME_TEMPLATE: return "'{0}'"; |
| 327 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_CURRENT_TIMESTAMP: return "NOW()"; |
| 328 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → KILLED |
case SQL_TIMESTAMP_PATTERN: return "yyyy-MM-dd hh:mm:ss.sss"; |
| 329 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → KILLED |
case SQL_TIMESTAMP_TEMPLATE: return "'{0}'"; |
| 330 | // functions | |
| 331 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_COALESCE: return "coalesce(?, {0})"; |
| 332 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_SUBSTRING: return "substring(?, {0})"; |
| 333 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_SUBSTRINGEX: return "substring(?, {0}, {1})"; |
| 334 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_REPLACE: return "replace(?, {0}, {1})"; |
| 335 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_REVERSE: return "reverse(?)"; |
| 336 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_STRINDEX: return "instr(?, {0})"; |
| 337 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_STRINDEXFROM: return "locate({0}, ?, {1})"; |
| 338 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_LENGTH: return "length(?)"; |
| 339 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_UPPER: return "upper(?)"; |
| 340 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_LOWER: return "lcase(?)"; |
| 341 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_TRIM: return "trim(?)"; |
| 342 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_LTRIM: return "ltrim(?)"; |
| 343 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_RTRIM: return "rtrim(?)"; |
| 344 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_ESCAPE: return "? escape '{0}'"; |
| 345 | // Numeric | |
| 346 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_ABS: return "abs(?)"; |
| 347 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_ROUND: return "round(?,{0})"; |
| 348 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_TRUNC: return "truncate(?,{0})"; |
| 349 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_CEILING: return "ceiling(?)"; |
| 350 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_FLOOR: return "floor(?)"; |
| 351 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_MODULO: return "mod(?,{0})"; |
| 352 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_FORMAT: return "printf({0:VARCHAR}, ?)"; |
| 353 | // Date | |
| 354 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_DAY: return "day(?)"; |
| 355 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_MONTH: return "month(?)"; |
| 356 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_YEAR: return "year(?)"; |
| 357 | // Aggregation | |
| 358 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_SUM: return "sum(?)"; |
| 359 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_MAX: return "max(?)"; |
| 360 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_MIN: return "min(?)"; |
| 361 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_AVG: return "avg(?)"; |
| 362 | // Others | |
| 363 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_DECODE: return "case ? {0} end"; |
| 364 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_DECODE_SEP: return " "; |
| 365 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_DECODE_PART: return "when {0} then {1}"; |
| 366 |
1
1. getSQLPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getSQLPhrase → NO_COVERAGE |
case SQL_FUNC_DECODE_ELSE: return "else {0}"; |
| 367 | // Not defined | |
| 368 | default: | |
| 369 | log.error("SQL phrase " + String.valueOf(phrase) + " is not defined!"); | |
| 370 | return ""; | |
| 371 | } | |
| 372 | } | |
| 373 | ||
| 374 | @Override | |
| 375 | public int executeSQL(String sqlCmd, Object[] sqlParams, Connection conn, DBSetGenKeys genKeys) throws SQLException | |
| 376 | { | |
| 377 | Statement stmt = null; | |
| 378 | int count = 0; | |
| 379 | try | |
| 380 | { | |
| 381 |
1
1. executeSQL : negated conditional → KILLED |
if (sqlParams != null) |
| 382 | { // Use a prepared statement | |
| 383 | PreparedStatement pstmt = conn.prepareStatement(sqlCmd); | |
| 384 | stmt = pstmt; | |
| 385 |
1
1. executeSQL : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::prepareStatement → NO_COVERAGE |
prepareStatement(pstmt, sqlParams); |
| 386 | count = pstmt.executeUpdate(); | |
| 387 | } | |
| 388 | else | |
| 389 | { // Execute a simple statement | |
| 390 | stmt = conn.createStatement(); | |
| 391 | count = stmt.executeUpdate(sqlCmd); | |
| 392 | } | |
| 393 | // Retrieve any auto-generated keys | |
| 394 |
3
1. executeSQL : changed conditional boundary → SURVIVED 2. executeSQL : negated conditional → KILLED 3. executeSQL : negated conditional → KILLED |
if (genKeys != null && count > 0) |
| 395 | { // Return Keys | |
| 396 | ResultSet rs = stmt.getGeneratedKeys(); | |
| 397 | try | |
| 398 | { | |
| 399 |
1
1. executeSQL : negated conditional → KILLED |
while (rs.next()) |
| 400 | { | |
| 401 |
1
1. executeSQL : removed call to org/apache/empire/db/DBDatabaseDriver$DBSetGenKeys::set → KILLED |
genKeys.set(rs.getObject(1)); |
| 402 | } | |
| 403 | } | |
| 404 | finally | |
| 405 | { | |
| 406 |
1
1. executeSQL : removed call to java/sql/ResultSet::close → SURVIVED |
rs.close(); |
| 407 | } | |
| 408 | } | |
| 409 | } | |
| 410 | finally | |
| 411 | { | |
| 412 |
1
1. executeSQL : removed call to org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::close → SURVIVED |
close(stmt); |
| 413 | } | |
| 414 |
1
1. executeSQL : replaced int return with 0 for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::executeSQL → KILLED |
return count; |
| 415 | } | |
| 416 | | |
| 417 | @Override | |
| 418 | public Object getResultValue(ResultSet rset, int columnIndex, DataType dataType) throws SQLException | |
| 419 | { | |
| 420 |
2
1. getResultValue : negated conditional → KILLED 2. getResultValue : negated conditional → KILLED |
if (dataType == DataType.DATETIME || dataType == DataType.TIMESTAMP) |
| 421 | { | |
| 422 | // SQLite does not have a Date type, or any kind of type :( | |
| 423 | String datePattern = getSQLPhrase(SQL_DATETIME_PATTERN); | |
| 424 | DateFormat dateFormat = new SimpleDateFormat(datePattern); | |
| 425 | try | |
| 426 | { | |
| 427 | Date timestamp = dateFormat.parse(rset.getString(columnIndex)); | |
| 428 |
1
1. getResultValue : replaced return value with null for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getResultValue → SURVIVED |
return new java.sql.Timestamp(timestamp.getTime()); |
| 429 | } | |
| 430 | catch (ParseException e) | |
| 431 | { | |
| 432 | throw new UnexpectedReturnValueException(rset.getString(columnIndex), "getResultValue"); | |
| 433 | } | |
| 434 | } | |
| 435 |
1
1. getResultValue : negated conditional → KILLED |
else if (dataType == DataType.CLOB) |
| 436 | { | |
| 437 | java.sql.Clob clob = rset.getClob(columnIndex); | |
| 438 |
1
1. getResultValue : negated conditional → NO_COVERAGE |
return ((clob != null) ? clob.getSubString(1, (int) clob.length()) : null); |
| 439 | } | |
| 440 |
1
1. getResultValue : negated conditional → KILLED |
else if (dataType == DataType.BLOB) |
| 441 | { // Get bytes of a binary large object | |
| 442 | java.sql.Blob blob = rset.getBlob(columnIndex); | |
| 443 |
1
1. getResultValue : negated conditional → NO_COVERAGE |
return ((blob != null) ? blob.getBytes(1, (int) blob.length()) : null); |
| 444 | } | |
| 445 | else | |
| 446 | { | |
| 447 |
1
1. getResultValue : replaced return value with null for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getResultValue → KILLED |
return rset.getObject(columnIndex); |
| 448 | } | |
| 449 | } | |
| 450 | | |
| 451 | /** | |
| 452 | * @see DBDatabaseDriver#getConvertPhrase(DataType, DataType, Object) | |
| 453 | */ | |
| 454 | @Override | |
| 455 | public String getConvertPhrase(DataType destType, DataType srcType, Object format) | |
| 456 | { | |
| 457 | switch (destType) | |
| 458 | { | |
| 459 | // Convert to text | |
| 460 | case TEXT: | |
| 461 | case VARCHAR: | |
| 462 | case CHAR: | |
| 463 |
1
1. getConvertPhrase : negated conditional → NO_COVERAGE |
if (format != null) |
| 464 | { // Convert using a format string | |
| 465 |
2
1. getConvertPhrase : negated conditional → NO_COVERAGE 2. getConvertPhrase : negated conditional → NO_COVERAGE |
if (srcType == DataType.INTEGER || srcType == DataType.AUTOINC) |
| 466 | { | |
| 467 | log.error("getConvertPhrase: unknown type " + destType); | |
| 468 |
1
1. getConvertPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getConvertPhrase → NO_COVERAGE |
return "?"; |
| 469 | } | |
| 470 | else | |
| 471 | { | |
| 472 |
1
1. getConvertPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getConvertPhrase → NO_COVERAGE |
return "to_char(?, '" + format.toString() + "')"; |
| 473 | } | |
| 474 | } | |
| 475 |
1
1. getConvertPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getConvertPhrase → NO_COVERAGE |
return "convert(?, CHAR)"; |
| 476 | case INTEGER: | |
| 477 | { | |
| 478 |
1
1. getConvertPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getConvertPhrase → NO_COVERAGE |
return "convert(?, BIGINT)"; |
| 479 | } | |
| 480 | case DECIMAL: | |
| 481 | { | |
| 482 |
1
1. getConvertPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getConvertPhrase → NO_COVERAGE |
return "convert(?, DECIMAL)"; |
| 483 | } | |
| 484 | case FLOAT: | |
| 485 | { | |
| 486 |
1
1. getConvertPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getConvertPhrase → NO_COVERAGE |
return "convert(?, DOUBLE)"; |
| 487 | } | |
| 488 | // Unknown Type | |
| 489 | default: | |
| 490 | log.error("getConvertPhrase: unknown type (" + String.valueOf(destType)); | |
| 491 |
1
1. getConvertPhrase : replaced return value with "" for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getConvertPhrase → NO_COVERAGE |
return "?"; |
| 492 | } | |
| 493 | } | |
| 494 | | |
| 495 | /** | |
| 496 | * Overridden. Returns a timestamp that is used for record updates created | |
| 497 | * by the database server. | |
| 498 | * | |
| 499 | * @return the current date and time of the database server. | |
| 500 | */ | |
| 501 | @Override | |
| 502 | public java.sql.Timestamp getUpdateTimestamp(Connection conn) | |
| 503 | { | |
| 504 | // Default implementation | |
| 505 | GregorianCalendar cal = new GregorianCalendar(); | |
| 506 |
1
1. getUpdateTimestamp : replaced return value with null for org/apache/empire/db/sqlite/DBDatabaseDriverSQLite::getUpdateTimestamp → KILLED |
return new java.sql.Timestamp(cal.getTimeInMillis()); |
| 507 | } | |
| 508 | | |
| 509 | /** | |
| 510 | * @see DBDatabaseDriver#getDDLScript(DBCmdType, DBObject, DBSQLScript) | |
| 511 | */ | |
| 512 | @Override | |
| 513 | public void getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script) | |
| 514 | { | |
| 515 |
1
1. getDDLScript : negated conditional → KILLED |
if (ddlGenerator == null) |
| 516 | ddlGenerator = new SQLiteDDLGenerator(this); | |
| 517 | // forward request | |
| 518 |
1
1. getDDLScript : removed call to org/apache/empire/db/DBDDLGenerator::getDDLScript → KILLED |
ddlGenerator.getDDLScript(type, dbo, script); |
| 519 | } | |
| 520 | | |
| 521 | @Override | |
| 522 | public Object getNextSequenceValue(DBDatabase db, String SeqName, int minValue, Connection conn) | |
| 523 | { | |
| 524 | throw new NotImplementedException(db, " sequence values are assigned dynamicaly from sqlite "); | |
| 525 | } | |
| 526 | ||
| 527 | /** | |
| 528 | * @see DBDatabaseDriver#getNextSequenceValueExpr(DBTableColumn col) | |
| 529 | */ | |
| 530 | @Override | |
| 531 | public DBColumnExpr getNextSequenceValueExpr(DBTableColumn column) | |
| 532 | { | |
| 533 | throw new NotSupportedException(this, "getNextSequenceValueExpr"); | |
| 534 | } | |
| 535 | | |
| 536 | } | |
Mutations | ||
| 83 |
1.1 |
|
| 86 |
1.1 |
|
| 94 |
1.1 |
|
| 95 |
1.1 |
|
| 106 |
1.1 |
|
| 119 |
1.1 |
|
| 125 |
1.1 |
|
| 135 |
1.1 |
|
| 136 |
1.1 |
|
| 137 |
1.1 |
|
| 138 |
1.1 |
|
| 139 |
1.1 |
|
| 140 |
1.1 |
|
| 141 |
1.1 |
|
| 142 |
1.1 |
|
| 143 |
1.1 |
|
| 144 |
1.1 |
|
| 145 |
1.1 |
|
| 146 |
1.1 |
|
| 147 |
1.1 |
|
| 148 |
1.1 |
|
| 149 |
1.1 |
|
| 150 |
1.1 |
|
| 151 |
1.1 |
|
| 152 |
1.1 |
|
| 153 |
1.1 |
|
| 154 |
1.1 |
|
| 155 |
1.1 |
|
| 156 |
1.1 |
|
| 157 |
1.1 |
|
| 158 |
1.1 |
|
| 159 |
1.1 |
|
| 161 |
1.1 |
|
| 162 |
1.1 |
|
| 163 |
1.1 |
|
| 164 |
1.1 |
|
| 165 |
1.1 |
|
| 166 |
1.1 |
|
| 167 |
1.1 |
|
| 168 |
1.1 |
|
| 169 |
1.1 |
|
| 170 |
1.1 |
|
| 171 |
1.1 |
|
| 172 |
1.1 |
|
| 173 |
1.1 |
|
| 174 |
1.1 |
|
| 175 |
1.1 |
|
| 176 |
1.1 |
|
| 177 |
1.1 |
|
| 178 |
1.1 |
|
| 179 |
1.1 |
|
| 180 |
1.1 |
|
| 181 |
1.1 |
|
| 182 |
1.1 |
|
| 183 |
1.1 |
|
| 184 |
1.1 |
|
| 185 |
1.1 |
|
| 187 |
1.1 |
|
| 188 |
1.1 |
|
| 189 |
1.1 |
|
| 190 |
1.1 |
|
| 191 |
1.1 |
|
| 192 |
1.1 |
|
| 193 |
1.1 |
|
| 194 |
1.1 |
|
| 195 |
1.1 |
|
| 196 |
1.1 |
|
| 197 |
1.1 |
|
| 198 |
1.1 |
|
| 199 |
1.1 |
|
| 200 |
1.1 |
|
| 201 |
1.1 |
|
| 202 |
1.1 |
|
| 203 |
1.1 |
|
| 204 |
1.1 |
|
| 205 |
1.1 |
|
| 206 |
1.1 |
|
| 207 |
1.1 |
|
| 208 |
1.1 |
|
| 209 |
1.1 |
|
| 210 |
1.1 |
|
| 211 |
1.1 |
|
| 213 |
1.1 |
|
| 214 |
1.1 |
|
| 215 |
1.1 |
|
| 216 |
1.1 |
|
| 217 |
1.1 |
|
| 218 |
1.1 |
|
| 219 |
1.1 |
|
| 220 |
1.1 |
|
| 221 |
1.1 |
|
| 222 |
1.1 |
|
| 223 |
1.1 |
|
| 224 |
1.1 |
|
| 225 |
1.1 |
|
| 226 |
1.1 |
|
| 227 |
1.1 |
|
| 228 |
1.1 |
|
| 229 |
1.1 |
|
| 230 |
1.1 |
|
| 231 |
1.1 |
|
| 232 |
1.1 |
|
| 233 |
1.1 |
|
| 234 |
1.1 |
|
| 235 |
1.1 |
|
| 236 |
1.1 |
|
| 237 |
1.1 |
|
| 239 |
1.1 |
|
| 240 |
1.1 |
|
| 241 |
1.1 |
|
| 242 |
1.1 |
|
| 243 |
1.1 |
|
| 244 |
1.1 |
|
| 245 |
1.1 |
|
| 246 |
1.1 |
|
| 247 |
1.1 |
|
| 248 |
1.1 |
|
| 249 |
1.1 |
|
| 250 |
1.1 |
|
| 251 |
1.1 |
|
| 252 |
1.1 |
|
| 253 |
1.1 |
|
| 254 |
1.1 |
|
| 255 |
1.1 |
|
| 256 |
1.1 |
|
| 257 |
1.1 |
|
| 258 |
1.1 |
|
| 259 |
1.1 |
|
| 270 |
1.1 |
|
| 273 |
1.1 |
|
| 289 |
1.1 |
|
| 291 |
1.1 |
|
| 294 |
1.1 |
|
| 311 |
1.1 |
|
| 312 |
1.1 |
|
| 313 |
1.1 |
|
| 314 |
1.1 |
|
| 315 |
1.1 |
|
| 316 |
1.1 |
|
| 317 |
1.1 |
|
| 318 |
1.1 |
|
| 320 |
1.1 |
|
| 321 |
1.1 |
|
| 322 |
1.1 |
|
| 323 |
1.1 |
|
| 324 |
1.1 |
|
| 325 |
1.1 |
|
| 326 |
1.1 |
|
| 327 |
1.1 |
|
| 328 |
1.1 |
|
| 329 |
1.1 |
|
| 331 |
1.1 |
|
| 332 |
1.1 |
|
| 333 |
1.1 |
|
| 334 |
1.1 |
|
| 335 |
1.1 |
|
| 336 |
1.1 |
|
| 337 |
1.1 |
|
| 338 |
1.1 |
|
| 339 |
1.1 |
|
| 340 |
1.1 |
|
| 341 |
1.1 |
|
| 342 |
1.1 |
|
| 343 |
1.1 |
|
| 344 |
1.1 |
|
| 346 |
1.1 |
|
| 347 |
1.1 |
|
| 348 |
1.1 |
|
| 349 |
1.1 |
|
| 350 |
1.1 |
|
| 351 |
1.1 |
|
| 352 |
1.1 |
|
| 354 |
1.1 |
|
| 355 |
1.1 |
|
| 356 |
1.1 |
|
| 358 |
1.1 |
|
| 359 |
1.1 |
|
| 360 |
1.1 |
|
| 361 |
1.1 |
|
| 363 |
1.1 |
|
| 364 |
1.1 |
|
| 365 |
1.1 |
|
| 366 |
1.1 |
|
| 381 |
1.1 |
|
| 385 |
1.1 |
|
| 394 |
1.1 2.2 3.3 |
|
| 399 |
1.1 |
|
| 401 |
1.1 |
|
| 406 |
1.1 |
|
| 412 |
1.1 |
|
| 414 |
1.1 |
|
| 420 |
1.1 2.2 |
|
| 428 |
1.1 |
|
| 435 |
1.1 |
|
| 438 |
1.1 |
|
| 440 |
1.1 |
|
| 443 |
1.1 |
|
| 447 |
1.1 |
|
| 463 |
1.1 |
|
| 465 |
1.1 2.2 |
|
| 468 |
1.1 |
|
| 472 |
1.1 |
|
| 475 |
1.1 |
|
| 478 |
1.1 |
|
| 482 |
1.1 |
|
| 486 |
1.1 |
|
| 491 |
1.1 |
|
| 506 |
1.1 |
|
| 515 |
1.1 |
|
| 518 |
1.1 |


Toggle navigation
MyHome
Visualize the power consumption and Control the devices
DEVICES
AC
Visualize
On
Off
Speak
BULB
Visualize
On
Off
Speak
FAN
Visualize
On
Off
Speak
T.V.
Visualize
On
Off
Speak


Welcome to the About Me Guessing Game
My name is Kim Damalas. My paternal grandfather immigrated from Thessaloniki in northern Greece and settled in Chicago. Our family is very proud of our Greek heritage. Personally, I'd rather I'd not inherited the Greek nose!
After graduating from college in 19-umm hmmm, I was commissioned an Officer in the Air Force and ultimately stuck it out for 25 years. It was a great career that allowed me to travel the world and work with some amazing minds in technical fields such:
- Intercontinental Ballistic Missiles
- Satellite Design and Operations
- Space-Object Tracking Radars
- National Missile Defense Systems
- Cybersecurity
My last couple of positions were policy-oriented and very political, and I quickly decided it was time for a change. I retired in early 2017 and started looking for a second career that would allow me to work from home. For the last two years, my job has been "student"--first in Graphic Design and now in Software Development. I love learning! Not needing to pay for kids' college tuition, I'm able to use my military education benefits for myself.
I've been very fortunate to be formally educated in many areas--all paid for by the Air Force!
- Bachelor's of Science in Math; minor in Computer Science (Iowa State University)
- Master's of Science in Space System Design (University of North Dakota)
- Master's of Science in Math (Naval Postgraduate School)
- Master's of Science in Operations Research (Naval Postgraduate School)
- Graphic Design (Seattle Central College)
- Software Design (Code Fellows)
My goals for the future:
- Build a career where I can work from home
- Buy 5+ acres outside Seattle with a BIG garden and a BIG workshop for messy art projects
- Travel to Antarctica to complete all 7 continents visited
Here are my Top Ten favorite countries I've visited:
- Switzerland
- Dominican Republic
- Spain
- Germany
- Singapore
- Russia
- Australia
- Mexico
- Romania
- Argentina


Vault
{{ 'Request Encrypt Password' | translate }}
Password Not Recoverable
This password cannot be recovered. If this password is lost,
funds can only be recovered by reimporting your 12-word recovery
phrase.
Learn More
{{
'Request Fingerprint' | translate
}}


Company Logo
Menu
Services
Portfolio
Contact
The Bangalore properties & Land Developers
Our Services
Land Development
Contact Us
Joint Venture
Contact Us
Layout Formation
Contact Us
Our Work
Sapthagiri Vasundhara


Keep it short. Many congressional websites have a character or word limit and you can share more once a staffer responds to you.
You can only email your representatives. Due to the way congressional websites are designed, we can only connect you to the members representing the address you provided us. Feel free to ask the members who represents you to forward your message to other members you’d like to contact. You can also mail a letter or call a member’s office by looking up that information on usa.gov.
Stick to one issue. Keep your communication to a single topic and explain how the issue would affects you. This will help the office connect you with the relevant person.
Include a bill name/number if possible. You can look up bills on Congress.gov or GovTrack.us.
Be respectful and don’t threaten anyone. This is also true in other human communications.
Remember we’re not Congress. This service is operated by the Sunlight Foundation, a nonpartisan nonprofit dedicated to government transparency and accountability.


Ankita SharmaSoftware Engineer - Innovator - Photographer Brown University '19
Portfolio
About
Hi! My name is Ankita. I jumped into Computer Science when I started college and have become increasingly fascinated by the field.
Outside of school and CS, I love traveling, listening to international music, and trying new foo:D.
Contact Me
<EMAIL_ADDRESS>Education
Brown University, Computer Science & Economics '19
Morristown High School, Science Academy (CGPA: 4.9) '15
Work Experience
Summer 2017 - Full time/Paid Internship at Microsoft HQ , Redmond, WA
Windows 365 Team
Summer 2016 - Full time/Paid Internship at Twitter HQ , San Francisco, CA
Ads API Exception Analyzer Tool - Developed a tool using Hadoop, Scalding, and Twitter Ads API that caught and processed all of the exceptions being thrown on live data stream. This tool analyzed and categorized exceptions and tabulated them along with the stack traces, and respective response replay. This highly automated tool also cut JIRA tickets for each exception and sent out a consolidated error report to the entire development team each morning. Elimination of duplicate and spurious exceptions significantly reduced the engineering backlog and made debugging more efficient for the team. This production quality tool is currently in active use.
Spam Account Detection Tool - Designed and developed a tool that intelligently analyzed traffic patterns of each Twitter account and flagged the ones that were possibly generating spam. It automatically created JIRA tickets for tagged accounts and generated notifications for security team to take further actions. This tool was developed using Python and the Twitter Ads API.
Fall 2016 - Meiklejohn Peer/Academic Advisor
Mentor for 7 incoming first year students
Summer 2014 - Internship at NJ Center for STEM (Kean University)
Researched Glioblastoma Multiforme tumor cells from several cell lines in mice and humans to observe the reaction to specific transcription factors, signaling proteins, and inhibitors
Summer 2013 - Taekwondo Instructor at Morris Mixed Martial Arts Academy
Built a chrome extension called React on Fly; as you browse through your Facebook newsfeed you can like posts based on whether or not you are smiling
The chrome extension takes pictures of the user every 2 seconds and uses Microsoft Cognitive Services API to automatically like a post for the user based on facial expressions
Responsible for integrating the Microsoft Emotion API with the chrome extension tool
Implemented a medical web app (Solace) with medical students and physicians that provides coping mechanisms for those suffering from side-effects (psychological or physical from their medications)
App includes an active learning AI-chatbot emulator to provide diagnosis and remedy suggestions
Responsible for building the entire front-end for this app (HTML/CSS/JS/Bootstrap)
September 2016 - Twitter BLT HackWeek - #WeKnow
(Businesses Love Twitter) Predictive location application to create differentiated targetable audiences on Twitter for advertisers.
Created a web app for restaurants to indicate if they had food to give away and for people to subscribe if they were interested – frontend was developed with Bootstrap and backend with Firebase. All subscribers would be sent a text message using the Twilio API if a restaurant was giving away food in their area. Project was targeting food wastage.
Worked with an Arduino, an accelerometer/push button sensor, coded in Python, and used the Twilio API to create a smart pill bottle that would monitor usage, overdose, and request refills as needed
Used the “Internet Of Things” concept to create a smart bottle that sends a text when the bottle is almost empty and is close to a water fountain. I was responsible for HW/SW interfaces and developing the mobile/web application
Awards & Honors
September 2016 - "Creativity Special Award"
Twitter BLT (Businesses Love Twitter) HackWeek
Acknowledged for creative use of data and internal modeling for predictive location application to create differentiated targetable audiences.
Used the “Internet Of Things” concept to create a smart bottle that sends a text when the bottle is almost empty and is close to a water fountain. I was responsible for HW/SW interfaces and developing the mobile/web application


HP Canada reveals current and upcoming Black Friday deals
The doorbuster deals will begin on November 28th at 9am ET
by Aisha MalikHP has revealed its Black Friday deals including its current deals along with its upcoming doorbuster deals.
The doorbuster deals will begin on November 28th at 9am ET, while its regular Black Friday deals are running throughout the week until supplies last.
Doorbuster deals available starting November 28th:
- HP 15” Spectre x360 Laptop for $1,799.99 ($300 off)
- HP ProBook 440 G6 Notebook PC for $499.00 ($500 off)
- HP All-In-One 24-f0039 for 799.99 ($200 off)
- HP Sprocket 2nd Edition for $99.99 ($60 off)
- HP 32s Display for $199.99 ($100 off)
- HP Wireless Classic Keyboard and Mouse for $14.99 ($35 off)
Pre-Black Friday deals available starting November 21st:
- HP Chromebook for $249.99 ($150 off)
- HP Pavilion All-In-One for $799.99 ($200 off)
- HP ProBook 450 G6 Laptop for $499.99 ($440 off)
- HP EliteBook 850 G5 Laptop for $1,459 ($659 off)
- HP ZBook 15v G5 Mobile Workstation for $1,699 ($737 off)
- HP W2082a 20-inch LED Blacklit Monitor for $79.99 ($20 off)
- HP EliteDisplay E223 21.5” Monitor for $199.99 ($35 off)
Pre-Black Friday deals available starting November 25th:
- HP Z3700 Silver Wireless Mouse for $12.99 ($17 off)
- HP Pavilion 15” Laptop for $899.98 ($141 off)
- HP EliteBook x360 830 G6 Notebook PC for $1,629 ($729 off)
- HP ZBook 15u G6 Mobile Workstation for $2,299 ($735 off)
- HP Pavilion Gaming Desktop 790-0029 for $1,349.99 ($250 off)
- Omen by HP 15-dc1040nr for $2,199.98 ($400 off)
- HP Spectre x360 15 for $2,199.99 ($300 off)
- HP Spectre x360 13 for $1,899.99 ($370 off)
Pre-Black Friday deals available starting November 27th:
- HP LaserJet Pro M102w Printer for $99.99 ($50 off)
- HP ENVY 5055 All-in-One Printer for $49.99 ($80 off)
Customers can save $10 on their order when they spend $60 or more using the code ‘BFRIDAY60.’


---
layout: post
title: Sometimes All It Takes Is a Change In Perspective
tags:
- General Photography
- Lighting
- M43
- Micro 4:3
- Olympus E-P1
status: publish
type: post
published: true
meta:
aktt_notify_twitter: "yes"
_edit_last: "2"
_edit_lock: "1285430085"
_thumbnail_id: "2550"
ghostpool_post_template: Default
ghostpool_link: Full Size Image/Video
ghostpool_post_image: http://photo.rwboyer.com/wp-content/uploads/2010/09/P9130565-ico.jpg
ghostpool_post_faded_image: http://photo.rwboyer.com/wp-content/uploads/2010/09/P9130565-ico.jpg
ghostpool_circle_image: http://photo.rwboyer.com/wp-content/uploads/2010/09/P9130565-ico.jpg
aktt_tweeted: "1"
_wp_old_slug: ""
dsq_thread_id: "371824579"
---
If I were a real blogger I would go out of my way to set this kind of stuff up. Actually I do go out of my way to set this kind of stuff up but not being tuned in to using it as material for a written piece I don't shoot the bad angles. I only shoot the good ones or at least try to. My really late new years resolution is to take the bad shots and the good shots and try to explain the differences. Not in terms of the image - that's obvious but more in terms of exactly what I was thinking and what actions I actually took to make it better. Now all I got to do is remember to actually do that because it has become so automatic I rarely think about it with any degree of conscious thought.
This is a really stupid example but it happened to be an occasion where I was out shooting anything interesting I could find after getting a sandwich with my new little E-P1 and GF-1 cameras. This means it was crappy midday light. I stumbled across a really old church in my town - I mean really old built during colonial times. This particular situation wasn't anything special but it hit me like a ton of bricks.
Here is a ho-hum subject - doesn't really matter, it's not important it's an illustration, from the WRONG side.
[image title="OLYMPUS DIGITAL CAMERA" size="med" id="2548" align="none" linkto="viewer" ]
Now let's step 2 and a half feet to the right - oh, is that the same thing at the same time of day in the same light? Yep.
[image title="OLYMPUS DIGITAL CAMERA" size="med" id="2549" align="none" linkto="viewer" ]
The light and the subject can be exactly the same but standing 3 feet one way or three feet the other is make or break, do or die. This is true no matter what you shoot. The three feet in this case of where I was standing might not be the deal breaker it may be a 5 minute difference if you are a landscape shooter, it may be a fraction of an inch if you are a people shooter. The point is that a tiny change in perspective, point of view, or lighting angle is the difference between blah and KABOOM.
When I do lighting workshops this is what I try to illustrate no matter what technical crap is on the agenda. I have a couple of lighting setups that help illustrate this with undeniable truth. After learning how the gear works, and the metering should be done, etc, etc. When every one is shooting the same thing in the same light - the differences in the resulting shots are huge. This is when the real light bulb goes off and photographers can really move to the next level. Keep this in mind during your endeavors while wrestling with all the functions and settings on your gear and more in mind when you have some sort of gear inferiority complex.
RB


January 2015 in the Flink community
February 4, 2015 -Happy 2015! Here is a (hopefully digestible) summary of what happened last month in the Flink community.
0.8.0 release #
Flink 0.8.0 was released. See here for the release notes.
Flink roadmap #
The community has published a roadmap for 2015 on the Flink wiki. Check it out to see what is coming up in Flink, and pick up an issue to contribute!
Articles in the press #
The Apache Software Foundation announced Flink as a Top-Level Project. The announcement was picked up by the media, e.g., here, here, and here.
Hadoop Summit #
A submitted abstract on Flink Streaming won the community vote at “The Future of Hadoop” track.
Meetups and talks #
Flink was presented at the Paris Hadoop User Group, the Bay Area Hadoop User Group, the Apache Tez User Group, and FOSDEM 2015. The January Flink meetup in Berlin had talks on recent community updates and new features.
Notable code contributions #
Note: Code contributions listed here may not be part of a release or even the Flink master repository yet.
Using off-heap memory #
This pull request enables Flink to use off-heap memory for its internal memory uses (sort, hash, caching of intermediate data sets).
Gelly, Flink’s Graph API #
This pull request introduces Gelly, Flink’s brand new Graph API. Gelly offers a native graph programming abstraction with functionality for vertex-centric programming, as well as available graph algorithms. See this slide set for an overview of Gelly.
Semantic annotations #
Semantic annotations are a powerful mechanism to expose information about the behavior of Flink functions to Flink’s optimizer. The optimizer can leverage this information to generate more efficient execution plans. For example the output of a Reduce operator that groups on the second field of a tuple is still partitioned on that field if the Reduce function does not modify the value of the second field. By exposing this information to the optimizer, the optimizer can generate plans that avoid expensive data shuffling and reuse the partitioned output of Reduce. Semantic annotations can be defined for most data types, including (nested) tuples and POJOs. See the snapshot documentation for details (not online yet).
New YARN client #
The improved YARN client of Flink now allows users to deploy Flink on YARN for executing a single job. Older versions only supported a long-running YARN session. The code of the YARN client has been refactored to provide an (internal) Java API for controlling YARN clusters more easily.


Header
Action
Action description
Hover action
Action Description
Focus action
Action Description
Disabled action
Action description
Action
Some longer subtitle to break on multiple rows, for testing purposes
Cancel
Action in second group
Header
Action
Action description
Hover action
Action Description
Focus action
Action Description
Disabled action
Action description
Action
Some longer subtitle to break on multiple rows, for testing purposes
Cancel
Action in second group


Red flags
-
Hard and irregular lump
-
skin dimpling and puckering
-
skin oedema (peau d’orange)
-
Nipple discharge
-
Blood stained (intraduct papilloma)
-
Green grey (mammary dysplasia)
-
Yellow (mammary dysplasia)
-
Milky white (galactorrhoea)
-
-
Nipple distortion
-
Nipple eczema
Cancer
-
fixed
-
discrete
-
hard
-
withor without skin tethering
-
spontaneous bloody discharge = indication for urgent referral
-
rare under 30yo
-
lump that enlarges
-
other features
- fixed / hdard
-
other reasons for concern
-
-
up to 5% familial - most being autosomal dominant
men
-
urgen referral in any man ≥50yo with
-
unilateral
-
firm
-
subareolar mass
-
with or without nipple distorition or associated skin changes
-
investigations:
-
triple assessment
-
clincial
-
imaging
- mammography +/- uss
-
needle biopsy
-
core biopsy/fine needle aspiration cytology
-
-
Ductal carcinoma in sity
-
non invasive abnormal proliferation of milk duct epithelial cells within the ductal-lobular system
-
precursor lesion for invasive breast cancer
-
may present with:
-
palpable mass
-
nipple discharge
-
Paget disease of nipple +/- mass
-
Fibroadenoma
-
mobile lump
-
occur in young women
-
round rubbery mass
-
common
-
refer non urgently
Fat necrosis
-
post trauma
-
should refer urgently - especially if nipple/skin changes
Fibrocystic disease of breast
-
mammary dysplasia aka
-
most common women 30-50yo
-
pain, tenderness, swelling
-
premenstrual discomfort or pain
-
fluctuation in size of mass
-
usually settle after period
-
unilateral/bilateral
-
nodularity +/- discrete mass
-
Ace may extend down inner aspect of upper arm
-
nipple discharge may occur
Paget’s disease of nipple
-
unilateral eczematous changes to skin of the breast that do not respond to topical treatment
-
recent distortion of nipple


Gatekeeper Tatiana:
Nice to meet you. I am Tatiana, Gatekeeper of the Town of Goddard. The Gate, wich is the door of space and time, enables you to traverse long distances in a flash. But in order to learn how to use it, you must train for a long time in the Ivory Tower, just like I did.
Now! Have you decided where to travel?
Teleport
Exchange Dimension Diamonds.
[Noblesse Exclusive] Teleport
Move to the Arena & Monster Race Track (Free).
Quest


Narrated Az-Zuhri:
I heard As-Saib bin Yazid, saying, "In the lifetime of Allah's Apostle, and Abu Bakr and `Umar, the Adhan for the Jumua prayer used to be pronounced after the Imam had taken his seat on the pulpit. But when the people increased in number during the caliphate of `Uthman, he introduced a third Adhan (on Friday for the Jumua prayer) and it was pronounced at Az-Zaura' and that new state of affairs remained so in the succeeding years.


A set of standard benchmark optimization functions for R and a common interface to sample them.
| Version: | 0.1 |
| Depends: | R (≥ 3.0) |
| Imports: | lhs, randtoolbox, stats, stringr |
| Suggests: | testthat, covr |
| Published: | 2017-03-30 |
| Author: | Thomas Torsney-Weir [aut, cre] |
| Maintainer: | Thomas Torsney-Weir <torsneyt at gmail.com> |
| License: | MIT + file LICENSE |
| NeedsCompilation: | no |
| Materials: | README |
| CRAN checks: | optim.functions results |
| Reference manual: | optim.functions.pdf |
| Package source: | optim.functions_0.1.tar.gz |
| Windows binaries: | r-devel: optim.functions_0.1.zip, r-release: optim.functions_0.1.zip, r-oldrel: optim.functions_0.1.zip |
| OS X binaries: | r-release: optim.functions_0.1.tgz, r-oldrel: optim.functions_0.1.tgz |
Please use the canonical form https://CRAN.R-project.org/package=optim.functions to link to this page.