I hereby claim:
- I am rifatx on github.
- I am rifatx (https://keybase.io/rifatx) on keybase.
- I have a public key ASBfHhbUewoJnnBO32Gpb8LFdo1CzxdwUE3doxXfT4MaEQo
To claim this, I am signing this object:
$basePath = "\\some\source\directory" | |
$sourceFilePattern1 = "FilePattern1.*.dll" | |
$sourceFilePattern2 = "FilePattern1.*.dll" | |
$referenceName = "ReferencePattern" | |
Get-ChildItem -Path $basePath -Directory | | |
ForEach-Object { | |
$path = [System.IO.Path]::Combine($basePath, $_.Name, "*") | |
Get-ChildItem -Path $path -Include $sourceFilePattern1, $sourceFilePattern2 | |
Get-Process | Group-Object -Property ProcessName | %{ New-Object psobject -Property @{ ProcessName=$_.Name; PrivateMem=($_.Group | Measure-Object PM -Sum).Sum } } | Sort-Object -Descending -Property PrivateMem | Select-Object -First 20 |
private IEnumerable<string> GetColumns(PlSqlParser.Select_statementContext ssc) | |
{ | |
var sl = ssc | |
.select_only_statement() | |
.subquery() | |
.subquery_basic_elements() | |
.query_block() | |
.selected_list(); | |
var slel = sl.select_list_elements(); |
public override object VisitOpen_for_statement(PlSqlParser.Open_for_statementContext context) | |
{ | |
if (context.select_statement() != null) | |
{ | |
Columns.AddRange(GetColumns(context.select_statement())); | |
} | |
else | |
{ | |
if (context.expression()?.GetText() is var queryVar && !string.IsNullOrEmpty(queryVar) && | |
_assignments.ContainsKey(queryVar)) |
private static readonly Regex _reFrom = new Regex(@"[\n\r\s]+FROM[\n\r\s]+"); | |
public override object VisitAssignment_statement(PlSqlParser.Assignment_statementContext context) | |
{ | |
if (context.general_element().GetText() is var varName && !_assignments.ContainsKey(varName)) | |
{ | |
var selectQuery = context.expression().GetText().Trim('\'').Trim(); | |
if (selectQuery.StartsWith("SELECT", StringComparison.InvariantCultureIgnoreCase) || | |
selectQuery.StartsWith("WITH", StringComparison.InvariantCultureIgnoreCase)) |
public override object VisitParameter(PlSqlParser.ParameterContext context) | |
{ | |
var p = new Parameter | |
{ | |
Name = context.parameter_name().GetText(), | |
Direction = | |
$"{context.GetChild<TerminalNodeImpl>(0)?.GetText() ?? "IN"}{context.GetChild<TerminalNodeImpl>(1)?.GetText()}", | |
Type = context.type_spec().GetText() | |
}; |
internal static class Utils | |
{ | |
public static PlSqlParser CreatePlSqlParser(string spContent) | |
{ | |
var s = CharStreams.fromString(spContent); | |
var upper = new CaseChangingCharStream(s, true); | |
var lexer = new PlSqlLexer(upper); | |
var tokens = new CommonTokenStream(lexer); |
private IEnumerable<PortableExecutableReference> GetReferences(string basePath, string assemblyName) | |
{ | |
List<string> refNames = new(); | |
List<PortableExecutableReference> references = new(); | |
Queue<AssemblyName> pending = new(); | |
var depth = 0; | |
var mainAsmName = new FileInfo(assemblyName).Name; | |
mainAsmName = mainAsmName.Substring(0, | |
mainAsmName.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase)); |
I hereby claim:
To claim this, I am signing this object:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEApHSlBYGanB/nObsWYIZXF7kcT9Sa2oATwdnNqkb+K/8P3MRLY67g1Ki1yhATpqkPhGrwie5wa60+5T2WpVAyeQ4GzxHVZ9Vjk64Wmc/2yabq4LZRnw+9uZvH2Wx5UlMkOJM2trKYZof6pdz/n044BVihZnFQfWnTYg8vKlKKtFsL0sGKz+DWBgr49fldj4qUB6Nmn5M7+4RqYAAd3af+6ljOSCv4NG2r1ZbMRcBW89569/msPcfQYcBzVXXeC5Z+7o5Svk/10pzUaT6P09Kyz8j6T8iy/T+ugsYZ4Se3l2SRtnAFsd2AJMu6kHp5vaqNOZbnJLuAvbQVp+NL/KI88GZbGNZnua1C/L2zLwarpdZw27NgOJRc4U2sNVPI9qWlXNAPPkpVmpbQvX7gem0BmQdoTgYU6nXexTzGDlSX5yCc13i+xeIJKOf0cCLRse3JLD1fxefqlr2HqlH3cx1ISl0T4Pcj+8QuWAVmAASRaR6+ij31nArIAnPmvAGFDvrfa4Tp6AYQNxmjrqyMBrO0r6NpwbHwKzEsYBoAKjuQTBeE5E+mAPpJWOF+tVZlLPuWZyI1IfPIluVgOnSJ/F1iC4MhAFVZ+bUiQl2p2cUEL2Qzajzm9CfAABIDHSj/piqkv2+8xVbkDn0qtM21q1nMbJnxu0gFqUyVZtE1Vz+VXy0= |